패키지flash.geom
클래스public class PerspectiveProjection
상속PerspectiveProjection Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

PerspectiveProjection 클래스를 사용하면 표시 객체와 모든 자식의 원근 변형을 손쉽게 할당하거나 수정할 수 있습니다. 복잡한 원근 변형이나 사용자 정의 원근 변형을 수행하려면 Matrix3D 클래스를 사용합니다. PerspectiveProjection 클래스는 기본적인 3차원 프리젠테이션 속성을 제공하지만 Matrix3D 클래스를 사용하면 표시 객체의 3차원 프리젠테이션을 보다 자세히 제어할 수 있습니다.

투영은 컴퓨터 화면에 정육면체를 투영할 때와 같이 3차원 객체를 2차원 공간에 표현하는 수단입니다. 원근 투영에서는 시야 절두체(직사각형 피라미드)를 사용하여 3차원 월드와 해당 객체를 모델링하고 화면에 투영합니다. 시야 절두체는 뷰포인트의 원점에서 멀어질수록 넓어집니다. 뷰포인트의 원점은 카메라이거나 화면을 바라보는 관찰자의 눈일 수 있습니다. 원근 투영을 사용하면 깊이와 거리가 있는 3차원적인 느낌을 줄 수 있으며, 화면에서 가까운 객체는 화면에서 먼 객체보다 크게 나타납니다.

절두체 시야 영역

기본 PerspectiveProjection 객체는 루트 객체의 원근 변형에 대해 스테이지의 시야 및 종횡비(크기)에 따라 정의된 프레임워크입니다. 투영의 중심인 소실점은 스테이지의 중심으로 설정되므로 3차원 표시 객체를 z축에서 뒤로 이동하면 객체가 스테이지의 중심 쪽으로 사라집니다. 기본 뷰포인트는 점 (0,0)에서 양의 z축을 내려다보는 방향입니다. y축은 화면의 아래쪽을 가리킵니다. root 표시 객체의 원근 투영 설정에 액세스하여 perspectiveProjection 속성의 시야 및 투영 중심 속성을 변경하려면 root 객체의 DisplayObject.transform 속성을 사용합니다.

부모의 원근 투영을 통해 표시 객체에 다른 원근 투영을 설정할 수도 있습니다. 이렇게 하려면 우선 PerspectiveProjection 객체를 만들고 fieldOfViewprojectionCenter 속성을 설정합니다. 그런 다음 DisplayObject.transform 속성을 사용하여 PerspectiveProjection 객체를 부모 표시 객체에 할당합니다. 이렇게 하면 지정된 투영 행렬 및 변형이 표시 객체의 모든 3차원 자식에 적용됩니다.

참고 사항

flash.display.DisplayObject.transform
flash.geom.Transform
flash.geom.Matrix3D
flash.geom.Utils3D
Projecting 3D objects onto a 2D view
Example: Perspective projection


Public 속성
 속성다음에 의해 정의됨
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  fieldOfView : Number
3차원 시야의 각을 0에서 180 사이의 각도로 지정합니다.
PerspectiveProjection
  focalLength : Number
눈 또는 뷰포인트의 원점인 (0,0,0)과 z축에 있는 표시 객체 사이의 거리입니다.
PerspectiveProjection
  projectionCenter : Point
투영의 중심(표시 객체의 소실점)을 나타내는 2차원 점입니다.
PerspectiveProjection
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
Public 메서드
 메서드다음에 의해 정의됨
  
PerspectiveProjection 객체의 인스턴스를 만듭니다.
PerspectiveProjection
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
표시 객체의 내부 Matrix3D 객체를 반환합니다.
PerspectiveProjection
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 정보
fieldOfView속성
fieldOfView:Number  [읽기/쓰기]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

3차원 시야의 각을 0에서 180 사이의 각도로 지정합니다. 이 값은 z 좌표가 0이 아닌 3차원 표시 객체에 원근 변형 및 왜곡이 적용되는 강도를 결정합니다.

각도가 0에 가까우면 화면의 2차원 x 및 y 좌표가 3차원 x, y 및 z 좌표와 거의 비슷하며 왜곡이 적거나 전혀 없습니다. 즉, 각이 작으면 표시 객체가 z축에서 아래로 내려갈 때 크기가 대략 그대로 유지되며 거의 이동하지 않습니다.

180도에 가까운 값을 사용하면 어안 렌즈 효과가 나타납니다. 즉, z 값이 0보다 작은 위치는 확대되고 z 값이 0보다 큰 위치는 최소화됩니다. 각이 크면 표시 객체가 z축에서 아래로 내려갈 때 크기가 빠르게 변경되고 먼 거리를 이동하는 것처럼 보입니다. 시야를 0 또는 180으로 설정하면 화면에 아무 것도 표시되지 않습니다.



구현
    public function get fieldOfView():Number
    public function set fieldOfView(value:Number):void
focalLength속성 
focalLength:Number  [읽기/쓰기]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

눈 또는 뷰포인트의 원점인 (0,0,0)과 z축에 있는 표시 객체 사이의 거리입니다. 원근 변형을 수행할 때 focalLength는 시야각 및 스테이지의 종횡비(스테이지 폭을 스테이지 높이로 나눈 값)에 따라 동적으로 계산됩니다.



구현
    public function get focalLength():Number
    public function set focalLength(value:Number):void

참고 사항

projectionCenter속성 
projectionCenter:Point  [읽기/쓰기]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

투영의 중심(표시 객체의 소실점)을 나타내는 2차원 점입니다.

projectionCenter 속성은 스테이지 왼쪽 위에 있는 기본 등록 포인트인 (0,0) 점에 대한 오프셋입니다. 기본 투영 변형 중심은 스테이지 중간이므로 3차원 표시 객체를 z축에서 뒤로 이동하면 객체가 스테이지의 중심 쪽으로 사라집니다.



구현
    public function get projectionCenter():Point
    public function set projectionCenter(value:Point):void
생성자 정보
PerspectiveProjection()생성자
public function PerspectiveProjection()

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

PerspectiveProjection 객체의 인스턴스를 만듭니다.

메서드 정보
toMatrix3D()메서드
public function toMatrix3D():Matrix3D

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

표시 객체의 내부 Matrix3D 객체를 반환합니다.

표시 객체는 루트 객체와 마찬가지로 변형에 대한 Matrix3D 속성이 정의되어 있지 않아도 PerspectiveProjection 객체를 가질 수 있습니다. 사실 PerspectiveProjection 또는 Matrix3D 객체를 사용하여 원근 변형을 지정할 수 있습니다. PerspectiveProjection 객체를 사용할 때 Matrix3D 객체가 필요한 경우 toMatrix3D() 메서드는 표시 객체의 내부 Matrix3D 객체를 검색할 수 있습니다. 예를 들어 toMatrix3D() 메서드를 Utils3D.projectVectors() 메서드와 함께 사용할 수 있습니다.

반환값
Matrix3D — 내부 Matrix3D 객체입니다.

참고 사항