|
Flash CS4 리소스 |
3D 효과에 삼각형 사용ActionScript에서는 Graphics.drawTriangles() 메서드를 사용하여 비트맵 변형을 수행합니다. 공간에서 3D 모델은 삼각형의 모음으로 나타나기 때문입니다. 그러나 Flash Player와 AIR에서는 깊이 버퍼를 지원하지 않으므로 표시 객체는 여전히 본질적으로는 평면, 즉 2D입니다. 자세한 내용은 Flash Player 및 AIR 런타임의 3D 기능 이해를 참조하십시오. Graphics.drawTriangles() 메서드는 Graphics.drawPath() 메서드와 같이 일련의 좌표를 인수로 받아 삼각형 패스를 그립니다. Graphics.drawPath()의 사용 방법을 이해하려면 패스 그리기를 참조하십시오. Graphics.drawTriangles() 메서드는 Vector.<Number>를 사용하여 삼각형 패스의 점 위치를 지정합니다. drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void drawTriangles()의 첫 번째 매개 변수는 유일한 필수 매개 변수인 vertices 매개 변수입니다. 이 매개 변수는 삼각형을 그릴 좌표를 정의하는 숫자의 벡터입니다. 세 개의 좌표 집합(여섯 개의 숫자) 모두가 하나의 삼각형 패스를 나타냅니다. 각 삼각형에는 세 개의 좌표 쌍(두 개의 x/y 값으로 구성된 집합 세 개)이 필요하므로 indices 매개 변수를 사용하지 않을 경우 벡터의 길이는 항상 6의 인수가 됩니다. 예를 들어 다음과 같습니다. graphics.beginFill(0xFF8000);
graphics.drawTriangles(
Vector.<Number>([
10,10, 100,10, 10,100,
110,10, 110,100, 20,100]));
이러한 삼각형은 모두 어떤 점도 공유하지 않지만 삼각형의 점이 공유될 경우에는 drawTriangles()의 두 번째 매개 변수인 indices를 사용하여 두 개 이상의 삼각형에 vertices 벡터의 값을 다시 사용할 수 있습니다. indices 매개 변수를 사용할 경우 indices 값은 vertices 배열 요소와 직접적으로 관련된 인덱스가 아니라 점 인덱스여야 합니다. 즉, indices로 정의된 vertices 벡터의 인덱스는 사실상 실제 인덱스를 2로 나눈 것입니다. 예를 들어 vertices 벡터의 세 번째 점의 경우 해당 점의 첫 번째 숫자 값은 벡터 인덱스 4에서 시작하지만 indices 값으로는 2를 사용합니다. 예를 들어 다음과 같이 indices 매개 변수를 사용하여 두 개의 삼각형이 대각선 가장자리를 공유하도록 병합할 수 있습니다. graphics.beginFill(0xFF8000);
graphics.drawTriangles(
Vector.<Number>([10,10, 100,10, 10,100, 100,100]),
Vector.<int>([0,1,2, 1,3,2]));
지금은 두 개의 삼각형을 사용하여 사각형이 그려지지는 않았지만 vertices 벡터에 네 개의 점만 지정되었습니다. indices를 사용하면 두 삼각형이 공유하는 두 개의 점은 각 삼각형에 대해 다시 사용됩니다. 이렇게 하면 전체 정점 수가 6개(12개의 숫자)에서 4개(8개의 숫자)로 줄어듭니다. ![]() vertices 매개 변수를 사용하여 두 개의 삼각형으로 그려진 사각형 이 기술은 대부분의 점이 여러 삼각형에서 공유되는 큰 삼각형 메쉬에서 유용합니다. 삼각형에는 모든 채우기를 적용할 수 있습니다. 채우기는 다른 모양에서와 마찬가지로 결과 삼각형 메쉬에 적용됩니다. |