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

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

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

Оси X, Y, Z

Класс Vector3D может также представлять направление, стрелку от исходной точки координатной системы с координатами (0,0,0) до конечной точки; или компоненты плавающей запятой цветовой модели RGB (Red, Green, Blue — красный, зеленый, синий).

Кватернион добавляет четвертый элемент, свойство w, которое предоставляет дополнительную информацию об ориентации. Например, свойство w может задавать угол вращения объекта Vector3D. Комбинация угла вращения и координат x, y и z может задавать ориентацию экранного объекта. Ниже представлены элементы Vector3D в виде матрицы:

Элементы Vector3D

См. также

flash.display.DisplayObject
flash.geom.Point
flash.geom.Matrix3D
flash.geom.Utils3D
Вектор


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  length : Number
[только для чтения] Длина, значение, текущего объекта VectorD от исходной точки (0,0,,0) до координат x, y и z объекта.
Vector3D
  lengthSquared : Number
[только для чтения] Квадрат длины текущего объекта Vector3D, вычисленный с использованием свойств x, y и z.
Vector3D
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  w : Number
Четвертый элемент объекта Vector3D (в дополнение к свойствам x, y и z) может содержать такие данные, как угол вращения.
Vector3D
  x : Number
Первый элемент объекта Vector3D, например координата x точки в трехмерном пространстве.
Vector3D
  y : Number
Второй элемент объекта Vector3D, например координата y точки в трехмерном пространстве.
Vector3D
  z : Number
Третий элемент объекта Vector3D, например координата z точки в трехмерном пространстве.
Vector3D
Общедоступные методы
 МетодОпределено
  
Vector3D(x:Number = 0., y:Number = 0., z:Number = 0., w:Number = 0.)
Создает экземпляр объекта Vector3D.
Vector3D
  
Добавляет значения элементов x, y и z текущего объекта Vector3D к значениям элементов x, y и z другого объекта Vector3D.
Vector3D
  
[статические] Возвращает угол (в радианах) между двумя векторами.
Vector3D
  
Возвращает новый объект Vector3D, который является точной копией текущего объекта Vector3D.
Vector3D
  
Возвращает новый объект Vector3D, который расположен перпендикулярно (под прямым углом) к текущему и второму объекту Vector3D.
Vector3D
  
Уменьшает значения элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D.
Vector3D
  
[статические] Возвращает расстояние между двумя объектами Vector3D.
Vector3D
  
Если текущий объект Vector3D и объект, заданный в качестве параметра, являются единичными вершинами, данный метод возвращает косинус угла между двумя вершинами.
Vector3D
  
equals(toCompare:Vector3D, allFour:Boolean = false):Boolean
Определяет равенство двух объектов Vector3D путем сравнения элементов x, y и z текущего объекта Vector3D и заданного объекта Vector3D.
Vector3D
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
Увеличивает значение элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D.
Vector3D
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
nearEquals(toCompare:Vector3D, tolerance:Number, allFour:Boolean = false):Boolean
Сравнивает элементы текущего объекта Vector3D с элементами заданного объекта Vector3D для определения приблизительного равенства.
Vector3D
  
Задает обращение текущего объекта Vector3D.
Vector3D
  
Преобразует объект Vector3D в единичный вектор делением первых трех элементов (x, y и z) на длину вектора.
Vector3D
  
Делит значения свойств x, y и z текущего объекта Vector3D на значение его свойства w.
Vector3D
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
Масштабирует текущий объект Vector3D на скаляр (значение).
Vector3D
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Вычитает значения элементов x, y и z текущего объекта Vector3D из значений элементов x, y и z другого объекта Vector3D.
Vector3D
  
Возвращает строковое представление текущего объекта Vector3D.
Vector3D
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Общедоступные константы
 Константа Определено
  X_AXIS : Vector3D
[статические] Ось x, определенная в виде объекта Vector3D с координатами (1,0,0).
Vector3D
  Y_AXIS : Vector3D
[статические] Ось y, определенная в виде объекта Vector3D с координатами (0,1,0).
Vector3D
  Z_AXIS : Vector3D
[статические] Ось z, определенная в виде объекта Vector3D с координатами (0,0,1).
Vector3D
Сведения о свойстве
lengthсвойство
length:Number  [только для чтения]

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

Длина, значение, текущего объекта VectorD от исходной точки (0,0,,0) до координат x, y и z объекта. Свойство w игнорируется. Длина или величина единичного вектора равна единице.



Реализация
    public function get length():Number

См. также

lengthSquaredсвойство 
lengthSquared:Number  [только для чтения]

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

Квадрат длины текущего объекта Vector3D, вычисленный с использованием свойств x, y и z. Свойство w игнорируется. По возможности используйте метод lengthSquared() вместо более медленного метода Math.sqrt() в методе Vector3D.length().



Реализация
    public function get lengthSquared():Number

См. также

wсвойство 
public var w:Number

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

Четвертый элемент объекта Vector3D (в дополнение к свойствам x, y и z) может содержать такие данные, как угол вращения. Значение по умолчанию 0.

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

Более того, свойство w можно использовать в качестве коэффициента деформации перспективы для спроецированного трехмерного положения или в качестве значения преобразования перспективы в представлении трехмерной координаты, спроецированной в двухмерное пространство. Например, можно создать матрицу проекции при помощи свойства Matrix3D.rawData, которая, после применения к объекту Vector3D, производит значение преобразования для четвертого элемента объекта Vector3D (свойства w). В результате последующего деления других элементов объекта Vector3D на значение преобразования получается спроецированный объект Vector3D. При помощи метода Vector3D.project() можно разделить первые три элемента объекта Vector3D на его четвертый элемент.

См. также

xсвойство 
public var x:Number

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

Первый элемент объекта Vector3D, например координата x точки в трехмерном пространстве. Значение по умолчанию 0.

yсвойство 
public var y:Number

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

Второй элемент объекта Vector3D, например координата y точки в трехмерном пространстве. Значение по умолчанию 0.

zсвойство 
public var z:Number

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

Третий элемент объекта Vector3D, например координата z точки в трехмерном пространстве. Значение по умолчанию 0.

Сведения о конструкторе
Vector3D()Конструктор
public function Vector3D(x:Number = 0., y:Number = 0., z:Number = 0., w:Number = 0.)

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

Создает экземпляр объекта Vector3D. Если в конструкторе параметр не указан, объект Vector3D создается с элементами (0,0,0,0).

Параметры
x:Number (default = 0.) — Первый элемент, например координата x.
 
y:Number (default = 0.) — Второй элемент, например координата y.
 
z:Number (default = 0.) — Третий элемент, например координата z.
 
w:Number (default = 0.) — Необязательный элемент для дополнительных данных, например угол поворота.
Сведения о методе
add()метод
public function add(a:Vector3D):Vector3D

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

Добавляет значения элементов x, y и z текущего объекта Vector3D к значениям элементов x, y и z другого объекта Vector3D. Метод add() не изменяет текущий объект Vector3D. Вместо этого он возвращает новый объект Vector3D с новыми значениями.

В результате сложения двух векторов получается результирующий вектор. Одним из способов визуализации результата является рисование вектора из начальной или конечной точки первого вектора до конечной или начальной точки второго вектора. Полученным в результате вектором будет являться расстояние между начальной точкой первого вектора и конечной точкой второго вектора.

Результирующий вектор Vector3D

Параметры

a:Vector3D — Объект Vector3D, добавляемый к текущему объекту Vector3D.

Возвращает
Vector3D — Объект Vector3D, получающийся в результате добавления текущего объекта Vector3D к другому объекту Vector3D.

См. также

angleBetween()метод 
public static function angleBetween(a:Vector3D, b:Vector3D):Number

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

Возвращает угол (в радианах) между двумя векторами. Возвращаемый угол представляет собой наименьший радиан вращения первого объекта Vector3D до его выравнивания со вторым объектом Vector3D.

Метод angleBetween() является статическим. Его можно использовать как метод класса Vector3D напрямую.

Для перевода градусов в радианы можно использовать следующую формулу:

радиан = Math.PI/180 * градус

Параметры

a:Vector3D — Первый объект Vector3D.
 
b:Vector3D — Второй объект Vector3D.

Возвращает
Number — Угол между двумя объектами Vector3D.
clone()метод 
public function clone():Vector3D

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

Возвращает новый объект Vector3D, который является точной копией текущего объекта Vector3D.

Возвращает
Vector3D — Новый объект Vector3D, который является копией текущего объекта Vector3D.
crossProduct()метод 
public function crossProduct(a:Vector3D):Vector3D

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

Возвращает новый объект Vector3D, который расположен перпендикулярно (под прямым углом) к текущему и второму объекту Vector3D. Если возвращен объект Vector3D с координатами (0,0,0), два объекта Vector3D расположены перпендикулярно друг к другу.

Векторное произведение

Можно использовать нормализованное векторное произведение двух вершин поверхности многоугольника и нормализованного вектора камеры или точки обзора наблюдателя для получения скалярного произведения. Значение скалярного произведения определяет, будет ли поверхность трехмерного объекта невидимой.

Параметры

a:Vector3D — Второй объект Vector3D.

Возвращает
Vector3D — Новый объект Vector3D, расположенный перпендикулярно к данному объекту Vector3D и объекту Vector3D, заданному в качестве параметра.

См. также

decrementBy()метод 
public function decrementBy(a:Vector3D):void

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

Уменьшает значения элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D. В отличие от метода Vector3D.subtract(), метод decrementBy() изменяет текущий объект Vector3D и не возвращает новый объект Vector3D.

Параметры

a:Vector3D — Объект Vector3D, содержащий значения, которые нужно вычесть из текущего объекта Vector3D.

См. также

distance()метод 
public static function distance(pt1:Vector3D, pt2:Vector3D):Number

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

Возвращает расстояние между двумя объектами Vector3D. Метод distance() является статическим. Его можно использовать как метод класса Vector3D напрямую для получения евклидового расстояния между двумя трехмерными точками.

Параметры

pt1:Vector3D — Объект Vector3D в виде первой трехмерной точки.
 
pt2:Vector3D — Объект Vector3D в виде второй трехмерной точки.

Возвращает
Number — Расстояние между двумя объектами Vector3D.
dotProduct()метод 
public function dotProduct(a:Vector3D):Number

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

Если текущий объект Vector3D и объект, заданный в качестве параметра, являются единичными вершинами, данный метод возвращает косинус угла между двумя вершинами. Единичные вершины — это вершины с одинаковым направлением, но с одной длиной. Они удаляют длину вектора как множителя в результате. Метод normalize() можно использовать для преобразования вектора в единичный вектор.

Метод dotProduct() используется для вычисления угла между двумя вершинами. Он также используется в вычислении отбора или освещения невидимой поверхности. Отбор невидимой поверхности — это процедура определения поверхностей, которые будут скрыты в точке наблюдения. Нормализованные вершины с камеры или точки наблюдения и векторное произведение вершин поверхности многоугольника можно использовать для получения скалярного произведения. Если скалярное произведение меньше нуля, то поверхность видима камере или наблюдателю. Если две единичные вершины расположены перпендикулярно друг к другу, они являются ортогональными и их скалярное произведение равно нулю. Если две вершины расположены параллельно друг к другу, скалярное произведение равно единице.

Параметры

a:Vector3D — Второй объект Vector3D.

Возвращает
Number — Скалярная величина, которая была получена в результате скалярного произведения текущего объекта Vector3D и заданного объекта Vector3D.

См. также

equals()метод 
public function equals(toCompare:Vector3D, allFour:Boolean = false):Boolean

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

Определяет равенство двух объектов Vector3D путем сравнения элементов x, y и z текущего объекта Vector3D и заданного объекта Vector3D. Если значения этих элементов одинаковые, два объекта Vector3D равны. Если для второго дополнительного параметра задано значение true, сравниваются все четыре элемента объектов Vector3D, включая свойство w.

Параметры

toCompare:Vector3D — Объект Vector3D, сравниваемый с текущим объектом Vector3D.
 
allFour:Boolean (default = false) — Необязательный параметр, который определяет необходимость использования свойства w объектов Vector3D при сравнении.

Возвращает
Boolean — Возвращается значение true, если заданный объект Vector3D равен текущему объекту Vector3D, и значение false, если не равен.

См. также

incrementBy()метод 
public function incrementBy(a:Vector3D):void

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

Увеличивает значение элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D. В отличие от метода Vector3D.add(), метод incrementBy() изменяет текущий объект Vector3D и не возвращает новый объект Vector3D.

Параметры

a:Vector3D — Объект Vector3D, добавляемый к текущему объекту Vector3D.

См. также

nearEquals()метод 
public function nearEquals(toCompare:Vector3D, tolerance:Number, allFour:Boolean = false):Boolean

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

Сравнивает элементы текущего объекта Vector3D с элементами заданного объекта Vector3D для определения приблизительного равенства. Два объекта Vector3D приблизительно равны, если значение всех элементов двух вершин равны, или если результат сравнения находится в пределах допустимого отклонения. Разность между двумя элементами должна быть меньше значения, указанного в параметре tolerance. Если для третьего дополнительного параметра задано значение true, сравниваются все четыре элемента объектов Vector3D, включая свойство w. В противном случае при сравнении учитываются только элементы x, y и z.

Параметры

toCompare:Vector3D — Объект Vector3D, сравниваемый с текущим объектом Vector3D.
 
tolerance:Number — Число, определяющее коэффициент допустимого отклонения. Если разность между значением элемента Vector3D, заданного в параметре toCompare, и значением текущего элемента Vector3D не превышает значение допустимого отклонения, эти два значения считаются приблизительно равными.
 
allFour:Boolean (default = false) — Необязательный параметр, который определяет необходимость использования свойства w объектов Vector3D при сравнении.

Возвращает
Boolean — Возвращается значение true, если заданный объект Vector3D приблизительно равен текущему объекту Vector3D, и значение false, если не равен.

См. также

negate()метод 
public function negate():void

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

Задает обращение текущего объекта Vector3D. Инверсный объект считается противоположным исходному объекту. Значения свойств x, y и z текущего объекта Vector3D меняются на значения -x, -y и -z.

normalize()метод 
public function normalize():Number

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

Преобразует объект Vector3D в единичный вектор делением первых трех элементов (x, y и z) на длину вектора. Единичные вершины — это вершины, имеющие направление, но их длина равна единице. Они упрощают вычисления векторов, убирая длину в качестве множителя.

Возвращает
Number — Длина текущего объекта Vector3D.
project()метод 
public function project():void

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

Делит значения свойств x, y и z текущего объекта Vector3D на значение его свойства w.

Если текущий объект Vector3D является результатом умножения объекта Vector3D на объект проекции Matrix3D, в свойстве w может содержаться значение преобразования. Затем проецирование может быть выполнено с помощью метода project() путем деления элементов на значение свойства w. Свойство Matrix3D.rawData можно использовать для создания объекта проекции Matrix3D.

scaleBy()метод 
public function scaleBy(s:Number):void

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

Масштабирует текущий объект Vector3D на скаляр (значение). Элементы x, y и z объекта Vector3D умножаются на скалярную величину, заданную в параметре. Например, если вектор масштабируется с коэффициентом, равным десяти, в результате получается вектор, длина которого в десять раз больше. Скалярная величина может также изменить направление вектора. При умножении вектора на отрицательное число направление вектора меняется на обратное.

Параметры

s:Number — Множитель (скалярная величина), который используется для масштабирования объекта Vector3D.

subtract()метод 
public function subtract(a:Vector3D):Vector3D

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

Вычитает значения элементов x, y и z текущего объекта Vector3D из значений элементов x, y и z другого объекта Vector3D. Метод subtract() не изменяет текущий объект Vector3D. Вместо этого данный метод возвращает новый объект Vector3D с новыми значениями.

Параметры

a:Vector3D — Объект Vector3D, вычитаемый из текущего объекта Vector3D.

Возвращает
Vector3D — Новый объект Vector3D, представляющий собой разницу текущего объекта Vector3D и заданного объекта Vector3D.

См. также

toString()метод 
public function toString():String

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

Возвращает строковое представление текущего объекта Vector3D. В строке содержатся значения свойств x, y и z.

Возвращает
String — Строка, в которой содержатся значения свойств x, y и z.
Сведения о константе
X_AXISКонстанта
public static const X_AXIS:Vector3D

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

Ось x, определенная в виде объекта Vector3D с координатами (1,0,0).

Y_AXISКонстанта  
public static const Y_AXIS:Vector3D

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

Ось y, определенная в виде объекта Vector3D с координатами (0,1,0).

Z_AXISКонстанта  
public static const Z_AXIS:Vector3D

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

Ось z, определенная в виде объекта Vector3D с координатами (0,0,1).