향상된 드로잉 API에서는 패스의 방향을 나타내는 패스 "굴곡"이라는 개념도 도입되었습니다. 패스의 굴곡은 양수(시계 방향)이거나 음수(반시계 방향)입니다. data 매개 변수의 벡터에서 제공하는 좌표를 렌더러에서 해석하는 순서에 따라 굴곡이 결정됩니다.
양수 및 음수 굴곡
-
A.
-
그리기 방향을 나타내는 화살표
-
B.
-
양수 방향(시계 방향)
-
C.
-
음수 방향(반시계 방향)
또한
Graphics.drawPath()
메서드에는 "굴곡"이라는 세 번째 선택적 매개 변수가 있습니다.
drawPath(commands:Vector.<int>, data:Vector.<Number>, winding:String = "evenOdd"):void
이 컨텍스트에서 세 번째 매개 변수는 교차하는 패스에 대한 굴곡 또는 채우기 규칙을 지정하는 문자열이나 상수입니다. 상수 값은 GraphicsPathWinding 클래스에
GraphicsPathWinding.EVEN_ODD
또는
GraphicsPathWinding.NON_ZERO
로 정의되어 있습니다. 패스가 교차할 때는 굴곡 규칙이 중요합니다.
짝수-홀수 규칙은 표준 굴곡 규칙으로서 이전 드로잉 API에서 사용되었습니다. 짝수-홀수 규칙은
Graphics.drawPath()
메서드에 대한 기본 규칙이기도 합니다. 짝수-홀수 굴곡 규칙을 사용하면 교차하는 패스가 열린 채우기와 닫힌 채우기 사이에서 교대로 반복됩니다. 채우기 교차 영역이 같은 두 사각형을 그리면 교차 영역이 채워집니다. 일반적으로 인접 영역은 둘 중 하나만 채워집니다.
반대로 0이 아닌 규칙은 굴곡(드로잉 방향)에 따라 교차하는 패스에 정의된 영역을 채울지 여부를 결정합니다. 반대 방향의 굴곡 패스가 교차할 때 정의된 영역은 짝수-홀수 굴곡의 경우와 같이 채워지지 않습니다. 패스의 굴곡이 같은 경우에는 채워지지 않은 영역이 채워집니다.
교차하는 영역에 대한 굴곡 규칙
-
A.
-
짝수-홀수 굴곡 규칙
-
B.
-
0이 아닌 굴곡 규칙
굴곡 규칙 이름
굴곡 규칙 이름은 이러한 채우기가 관리되는 방식을 정의하는 보다 구체적인 규칙을 나타냅니다. 양수 방향 굴곡 패스에는 값 +1이 지정되고 음수 방향 굴곡 패스에는 값 -1이 지정됩니다. 모양의 막힌 영역 내에 있는 점에서부터 시작하여 무한정으로 확장하여 선을 그립니다. 선이 패스와 교차하는 횟수와 이러한 패스의 결합된 값을 통해 채우기가 결정됩니다. 짝수-홀수 굴곡의 경우에는 선이 패스와 교차하는 횟수가 사용됩니다. 이 횟수가 홀수이면 영역이 채워지고 짝수이면 영역이 채워지지 않습니다. 0이 아닌 굴곡의 경우 패스에 지정된 값이 사용됩니다. 패스의 결합된 값이 0이 아니면 영역이 채워지고 0이면 영역이 채워지지 않습니다.
굴곡 규칙 개수 및 채우기
-
A.
-
짝수-홀수 굴곡 규칙
-
B.
-
0이 아닌 굴곡 규칙
굴곡 규칙 사용
이러한 채우기 규칙은 복잡하지만 일부 경우에 필요할 수 있습니다. 예를 들어 별 모양을 그린다고 가정합니다. 표준 짝수-홀수 규칙을 사용할 경우 해당 모양에는 각기 다른 10개의 선이 필요합니다. 0이 아닌 굴곡 규칙을 사용할 경우 이 10개의 선은 다섯 개로 줄어듭니다. 다음은 다섯 개의 선과 0이 아닌 굴곡 규칙으로 별을 그리기 위한 ActionScript입니다.
graphics.beginFill(0x60A0FF);
graphics.drawPath( Vector.<int>([1,2,2,2,2]), Vector.<Number>([66,10, 23,127, 122,50, 10,49, 109,127]), GraphicsPathWinding.NON_ZERO);
다음은 별 모양입니다.
서로 다른 굴곡 규칙을 사용한 별 모양
-
A.
-
짝수-홀수 굴곡, 10개의 선
-
B.
-
짝수-홀수 굴곡, 5개의 선
-
C.
-
0이 아닌 굴곡, 5개의 선
또한 이미지가 3차원 객체에서 텍스처로 사용되거나 애니메이션되고 겹칠 때는 굴곡 규칙이 더욱 중요해집니다.
|
|
|