2012-04-23 5 views
0
<LinearGradient> 
    <matrix> 
     <Matrix a="0.0262451171875" d="0.009765625" tx="218.45" ty="83"/> 
     </matrix> 
     <GradientEntry color="#E63426" ratio="0.00392156862745098"/> 
     <GradientEntry color="#CA271E" ratio="0.36078431372549"/> 
     <GradientEntry color="#B31D19" ratio="0.749019607843137"/> 
     <GradientEntry color="#AB1917" ratio="1"/> 
</LinearGradient> 

이것은 xFL 파일의 관련 부분으로 gradientEntry를 사용하여 색상으로 도형을 채 웁니다. 위의 행렬 값은 어떻게 든 그래디언트 시작 및 끝 좌표 좌표를 얻는 데 도움이된다고 가정합니다. 누구든지 시작 좌표와 끝 좌표를 추출하는 방법을 알고 있습니까? 저는 스케일링, 회전, 기울이기 및 변환 (변위)을 결정하기 위해 분해 기능을 가진 EaselJS Matrix 2D 클래스를 사용하여 오래 전에 비슷한 것을했습니다.xfl에서 GradientEntry를 사용하는 방법?

저는 HTML5로 xfl 그림을 캔버스로 그립니다.

Im 프로그래밍에 새로운 것이므로 어쩌면 제 질문이 그렇게 잘 공식화되지 않았습니다! 미안합니다.

답변

1

나는 이것을 잘 살펴 보았지만, 아직 완전히 이해하지 못했습니다.

XFL 파일에서 많이 발견되는 일반적인 변형 행렬이지만 정확하게 변형 된 것은 나에게 알려지지 않았습니다. 변환 행렬을 통해 [0,0]을 가져 와서 레이어의 로컬 변환 공간 (즉, 변형 점 빼기)을 고려하면 그라디언트의 중심을 얻을 수 있다는 것을 알고 있습니다.

그러나 [0,1], [1,0] 또는 [1,1]을 변환하면 변환 행렬의 값이 항상 매우 작기 때문에 결과는 [0,0]과 거의 다릅니다. 적어도 [1]은 올바른 방향으로 향하는 것처럼 보입니다. [1000,0]을 넣으면 그라디언트의 전체 길이의 약 1/2을 얻습니다.

그래서 광도를 기반으로 할 때 그라디언트는 [-1000,0]에서 [1000,0]까지 실행됩니다. 그러나 이것은 경험적 추정 일뿐입니다. 누군가가 더 나은 평가를 받거나 아마 이런 식으로했던 이유가 있다면, 나는 그것을 알고 싶습니다.