패키지 | flash.geom |
클래스 | public class PerspectiveProjection |
상속 | PerspectiveProjection Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
투영은 컴퓨터 화면에 정육면체를 투영할 때와 같이 3차원 객체를 2차원 공간에 표현하는 수단입니다. 원근 투영에서는 시야 절두체(직사각형 피라미드)를 사용하여 3차원 월드와 해당 객체를 모델링하고 화면에 투영합니다. 시야 절두체는 뷰포인트의 원점에서 멀어질수록 넓어집니다. 뷰포인트의 원점은 카메라이거나 화면을 바라보는 관찰자의 눈일 수 있습니다. 원근 투영을 사용하면 깊이와 거리가 있는 3차원적인 느낌을 줄 수 있으며, 화면에서 가까운 객체는 화면에서 먼 객체보다 크게 나타납니다.
기본 PerspectiveProjection 객체는 루트 객체의 원근 변형에 대해 스테이지의 시야 및 종횡비(크기)에 따라 정의된 프레임워크입니다. 투영의 중심인 소실점은 스테이지의 중심으로 설정되므로 3차원 표시 객체를 z축에서 뒤로 이동하면 객체가 스테이지의 중심 쪽으로 사라집니다. 기본 뷰포인트는 점 (0,0)에서 양의 z축을 내려다보는 방향입니다. y축은 화면의 아래쪽을 가리킵니다. root
표시 객체의 원근 투영 설정에 액세스하여 perspectiveProjection
속성의 시야 및 투영 중심 속성을 변경하려면 root
객체의 DisplayObject.transform
속성을 사용합니다.
부모의 원근 투영을 통해 표시 객체에 다른 원근 투영을 설정할 수도 있습니다. 이렇게 하려면 우선 PerspectiveProjection 객체를 만들고 fieldOfView
및 projectionCenter
속성을 설정합니다. 그런 다음 DisplayObject.transform
속성을 사용하여 PerspectiveProjection 객체를 부모 표시 객체에 할당합니다. 이렇게 하면 지정된 투영 행렬 및 변형이 표시 객체의 모든 3차원 자식에 적용됩니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
fieldOfView : Number
3차원 시야의 각을 0에서 180 사이의 각도로 지정합니다. | PerspectiveProjection | ||
focalLength : Number
눈 또는 뷰포인트의 원점인 (0,0,0)과 z축에 있는 표시 객체 사이의 거리입니다. | PerspectiveProjection | ||
projectionCenter : Point
투영의 중심(표시 객체의 소실점)을 나타내는 2차원 점입니다. | PerspectiveProjection |
메서드 | 정의 주체 | ||
---|---|---|---|
PerspectiveProjection 객체의 인스턴스를 만듭니다. | PerspectiveProjection | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
표시 객체의 내부 Matrix3D 객체를 반환합니다. | PerspectiveProjection | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | 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
관련 API 요소
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 객체입니다.
|
관련 API 요소
Tue Jun 12 2018, 03:17 PM Z