Главная / Action Script 3
Пакетflash.geom
Классpublic class PerspectiveProjection
НаследованиеPerspectiveProjection Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Класс PerspectiveProjection позволяет легко назначать и модифицировать перспективы экранного объекта и его дочерних объектов. Для более сложных или пользовательских преобразований перспективы используйте класс Matrix3D. Тогда как класс PerspectiveProjection содержит основные свойства пространственного представления объектов, класс Matrix3D предоставляет дополнительные возможности управления трехмерным представлением экранных объектов.

Проекция — это способ представления трехмерного объекта в двухмерном пространстве, например проекция куба на экран компьютера. В перспективной проекции используется конус видимости, прямоугольная пирамида, для моделирования и проецирования трехмерного пространства и его объектов на экране. Конус видимости значительно расширяется по мере удаления от исходного положения точки обзора. Исходным положением точки обзора может являться камера или глаза наблюдателя, смотрящего на экран. Спроецированная перспектива создает иллюзию трехмерного пространства с глубиной и расстоянием, в котором объекты, расположенные ближе к экрану, имеют большие размеры, чем объекты, расположенные на удаленном расстоянии от экрана.

Область видимости конуса

Объект PerspectiveProjection по умолчанию является каркасом, определенным для перспективного преобразования корневого объекта на основе поля обзора и соотношения сторон (размеров) сцены. Центр проекции, точка схода, задан в центре рабочей области, что обозначает, что трехмерные экранные объекты будут исчезать в центре рабочей области при перемещении в обратном направлении по оси z. Точкой просмотра по умолчанию является точка с координатами (0,0) при просмотре сверху вниз вдоль положительной оси z. Ось y направлена вниз экрана. Можно получить доступ к параметрам перспективной проекции экранного объекта root и изменить свойства поля обзора и центра проекции свойства perspectiveProjection с помощью свойства DisplayObject.transform экранного объекта root.

Можно изменить параметр перспективной проекции экранного объекта также при посредством перспективной проекции родительского объекта. Сначала создайте объект PerspectiveProjection и задайте его свойства fieldOfView и projectionCenter. Затем назначьте объект PerspectiveProjection родительскому экранному объекту при помощи свойства DisplayObject.transform. Затем заданные матрица проекции и преобразование будут применены ко всем трехмерным дочерним элементам экранного объекта.

См. также

flash.display.DisplayObject.transform
flash.geom.Transform
flash.geom.Matrix3D
flash.geom.Utils3D
Проецирование трехмерных объектов в двухмерное представление
Пример: Перспективная проекция


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  fieldOfView : Number
Указывает угол поля обзора, в градусах со значением между 0 и 180, в трехмерном пространстве.
PerspectiveProjection
  focalLength : Number
Расстояние между исходным положением наблюдателя или точкой просмотра (0,0,0) и экранным объектом, расположенным на оси z.
PerspectiveProjection
  projectionCenter : Point
Двумерная точка, представляющая центр проекции, точку схода, экранного объекта.
PerspectiveProjection
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
  
Создает экземпляр объекта PerspectiveProjection.
PerspectiveProjection
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Возвращает базовый объект Matrix3D экранного объекта.
PerspectiveProjection
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
fieldOfViewсвойство
fieldOfView:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Указывает угол поля обзора, в градусах со значением между 0 и 180, в трехмерном пространстве. Это значение определяет степень применения перспективного преобразования и искажения к трехмерному экранному объекту с ненулевой координатой по оси z.

Значение, близкое к 0 градусов, означает, что двухмерные координаты x и y экрана и трехмерные координаты 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
Версии среды выполнения:  10, 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
Версии среды выполнения:  10, 1.5

Двумерная точка, представляющая центр проекции, точку схода, экранного объекта.

Свойство projectionCenter является смещением к точке регистрации по умолчанию, расположенной в верхнем левом углу рабочей области, точка с координатами (0,0). Центр преобразования проекции по умолчанию находится в центре рабочей области, что обозначает, что трехмерные экранные объекты будут исчезать в центре рабочей области при перемещении в обратном направлении по оси z.



Реализация
    public function get projectionCenter():Point
    public function set projectionCenter(value:Point):void
Сведения о конструкторе
PerspectiveProjection()Конструктор
public function PerspectiveProjection()

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Создает экземпляр объекта PerspectiveProjection.

Сведения о методе
toMatrix3D()метод
public function toMatrix3D():Matrix3D

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Возвращает базовый объект Matrix3D экранного объекта.

В экранном объекте, например корневом объекте, можно создать объект PerspectiveProjection без необходимости определения свойства Matrix3D для его преобразования. На самом деле, объект PerspectiveProjection или Matrix3D следует использовать для определения перспективного преобразования. Если при использовании объекта PerspectiveProjection требовался объект Matrix3D, метод toMatrix3D() позволяет получить базовый объект Matrix3D экранного объекта. Например, метод toMatrix3D() можно использовать вместе с методом Utils3D.projectVectors().

Возвращает
Matrix3D — Базовый объект Matrix3D.

См. также