包 | flash.geom |
类 | public class Vector3D |
继承 | Vector3D Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
x
属性表示水平轴,y
属性表示垂直轴。在三维空间中,z
属性表示深度。当对象向右移动时,x
属性的值会增大。当对象向下移动时,y
属性的值会增大。当对象远离视点时,z
属性的值会增大。若使用透视投影和缩放,则对象在靠近屏幕时会显得大一些,而在远离屏幕时会显得小一些。正如右手三维坐标系中一样,正向 z 轴指向远离查看者的方向,并且当对象远离查看者的视线时,z
属性的值增大。全局空间的原点 (0,0,0) 位于舞台的左上角。
Vector3D 类还可以表示方向,即一个从坐标原点(例如 (0,0,0))指向一个端点的箭头;或表示 RGB(红、绿、蓝)颜色模型的一个浮点组件。
四元数表示法引入了第四个元素(w
属性),该元素提供额外的方向信息。例如,w
属性可以定义 Vector3D 对象的旋转角度。旋转角度和坐标 x、y 和 z 的组合可确定显示对象的方向。以下是 Vector3D 元素在矩阵表示法中的表示形式:
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
length : Number [只读]
当前 Vector3D 对象的长度(大小),即从原点 (0,0,0) 到该对象的 x、y 和 z 坐标的距离。 | Vector3D | ||
lengthSquared : Number [只读]
当前 Vector3D 对象长度的平方,它是使用 x、y 和 z 属性计算出来的。 | Vector3D | ||
w : Number
Vector3D 对象的第四个元素(除了 x、y 和 z 属性之外)可以容纳数据,例如旋转角度。 | Vector3D | ||
x : Number
Vector3D 对象中的第一个元素,例如,三维空间中某个点的 x 坐标。 | Vector3D | ||
y : Number
Vector3D 对象中的第二个元素,例如,三维空间中某个点的 y 坐标。 | Vector3D | ||
z : Number
Vector3D 对象中的第三个元素,例如,三维空间中某个点的 z 坐标。 | Vector3D |
方法 | 由以下参数定义 | ||
---|---|---|---|
创建 Vector3D 对象的实例。 | Vector3D | ||
将当前 Vector3D 对象的 x、y 和 z 元素的值与另一个 Vector3D 对象的 x、y 和 z 元素的值相加。 | Vector3D | ||
[静态]
返回两个矢量之间的弧度的角度。 | Vector3D | ||
返回一个新 Vector3D 对象,它是与当前 Vector3D 对象完全相同的副本。 | Vector3D | ||
将源 Vector3D 对象中的所有矢量数据复制到调用方 Vector3D 对象中。 | Vector3D | ||
返回一个新的 Vector3D 对象,它与当前 Vector3D 对象和另一个 Vector3D 对象垂直(成直角)。 | Vector3D | ||
按照指定的 Vector3D 对象的 x、y 和 z 元素的值递减当前 Vector3D 对象的 x、y 和 z 元素的值。 | Vector3D | ||
[静态]
返回两个 Vector3D 对象之间的距离。 | Vector3D | ||
如果当前 Vector3D 对象和作为参数指定的 Vector3D 对象均为单位顶点,此方法将返回这两个顶点之间所成角的余弦值。 | Vector3D | ||
通过将当前 Vector3D 对象的 x、y 和 z 元素与指定的 Vector3D 对象的 x、y 和 z 元素进行比较,确定这两个对象是否相等。 | Vector3D | ||
表示对象是否已经定义了指定的属性。 | Object | ||
按照指定的 Vector3D 对象的 x、y 和 z 元素的值递增当前 Vector3D 对象的 x、y 和 z 元素的值。 | Vector3D | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将当前 Vector3D 对象的元素与指定的 Vector3D 对象的元素进行比较,以确定它们是否大致相同。 | Vector3D | ||
将当前 Vector3D 对象设置为其逆对象。 | Vector3D | ||
通过将最前面的三个元素(x、y、z)除以矢量的长度可将 Vector3D 对象转换为单位矢量。 | Vector3D | ||
将当前 Vector3D 对象的 x、y 和 z 属性的值除以其 w 属性的值。 | Vector3D | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
按标量(大小)缩放当前的 Vector3D 对象。 | Vector3D | ||
设置循环操作动态属性的可用性。 | Object | ||
将 Vector3D 的成员设置为指定值
| Vector3D | ||
从另一个 Vector3D 对象的 x、y 和 z 元素的值中减去当前 Vector3D 对象的 x、y 和 z 元素的值。 | Vector3D | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回当前 Vector3D 对象的字符串表示形式。 | Vector3D | ||
返回指定对象的原始值。 | Object |
常量 | 由以下参数定义 | ||
---|---|---|---|
X_AXIS : Vector3D [静态]
定义为 Vector3D 对象的 x 轴,坐标为 (1,0,0)。 | Vector3D | ||
Y_AXIS : Vector3D [静态]
定义为 Vector3D 对象的 y 轴,坐标为 (0,1,0)。 | Vector3D | ||
Z_AXIS : Vector3D [静态]
定义为 Vector3D 对象的 z 轴,坐标为 (0,0,1)。 | Vector3D |
length | 属性 |
lengthSquared | 属性 |
w | 属性 |
public var w:Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
Vector3D 对象的第四个元素(除了 x
、y
和 z
属性之外)可以容纳数据,例如旋转角度。默认值为 0。
四元数表示法在三维旋转计算中,会将角度用作第四个元素。w
属性可用于定义有关 Vector3D 对象的旋转角度。旋转角度和坐标(x、y、z)的组合可确定显示对象的方向。
此外,可以将 w
属性用作投影的三维位置的透视变形因子,或用作表示投影到二维空间中的三维坐标的投影转换值。例如,可以使用 Matrix3D.rawData
属性创建一个投影矩阵,在将此矩阵应用于 Vector3D 对象时,该对象的第四个元素(w
属性)中会生成一个转换值。然后,将该 Vector3D 对象的其他元素除以此转换值可生成一个投影的 Vector3D 对象。可以使用 Vector3D.project()
方法将 Vector3D 对象的前三个元素除以它的第四个元素。
相关 API 元素
x | 属性 |
public var x:Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
Vector3D 对象中的第一个元素,例如,三维空间中某个点的 x 坐标。默认值为 0。
y | 属性 |
public var y:Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
Vector3D 对象中的第二个元素,例如,三维空间中某个点的 y 坐标。默认值为 0。
z | 属性 |
public var z:Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
Vector3D 对象中的第三个元素,例如,三维空间中某个点的 z 坐标。默认值为 0。
Vector3D | () | 构造函数 |
public function Vector3D(x:Number = 0., y:Number = 0., z:Number = 0., w:Number = 0.)
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
创建 Vector3D 对象的实例。如果未指定构造函数的参数,则将使用元素 (0,0,0,0) 创建 Vector3D 对象。
参数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 |
运行时版本: | Flash Player 10, AIR 1.5 |
将当前 Vector3D 对象的 x、y 和 z 元素的值与另一个 Vector3D 对象的 x、y 和 z 元素的值相加。add()
方法不更改当前的 Vector3D 对象。相反,此方法将返回具有新值的新 Vector3D 对象。
将两个矢量相加即可获得一个合成矢量。一种用于可视化结果的方法是,从第一个矢量的原点或尾部到第二个矢量的结束点或开头绘制一个矢量。合成矢量是第一个矢量的原点与第二个矢量的结束点之间的距离。
参数
a:Vector3D — 要与当前 Vector3D 对象相加的 Vector3D 对象。
|
Vector3D — 一个 Vector3D 对象,它是将当前 Vector3D 对象与另一个 Vector3D 对象相加所产生的结果。
|
相关 API 元素
angleBetween | () | 方法 |
public static function angleBetween(a:Vector3D, b:Vector3D):Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回两个矢量之间的弧度的角度。返回的角度是第一个 Vector3D 对象旋转到与第二个 Vector3D 对象对齐的位置时所形成的最小弧度。
angleBetween()
方法是静态方法。可以将此方法直接用作 Vector3D 类的方法。
要将一个角度转换成弧度,可以使用以下公式:
radian = Math.PI/180 * degree
参数
a:Vector3D — 第一个 Vector3D 对象。
| |
b:Vector3D — 第二个 Vector3D 对象。
|
Number — 两个 Vector3D 对象之间的角度。
|
clone | () | 方法 |
copyFrom | () | 方法 |
crossProduct | () | 方法 |
public function crossProduct(a:Vector3D):Vector3D
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回一个新的 Vector3D 对象,它与当前 Vector3D 对象和另一个 Vector3D 对象垂直(成直角)。如果返回的 Vector3D 对象的坐标为 (0,0,0),则表示两个 Vector3D 对象互相平行。
可以将多边形表面的两个顶点的标准化叉积与摄像头或眼睛视点的标准化矢量结合使用来获取点积。点积的值可以确定是否从视点中隐藏三维对象的某个表面。
参数
a:Vector3D — 第二个 Vector3D 对象。
|
Vector3D — 一个新的 Vector3D 对象,它与当前 Vector3D 对象和作为参数指定的 Vector3D 对象垂直。
|
相关 API 元素
decrementBy | () | 方法 |
public function decrementBy(a:Vector3D):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
按照指定的 Vector3D 对象的 x、y 和 z 元素的值递减当前 Vector3D 对象的 x、y 和 z 元素的值。与 Vector3D.subtract()
方法不同,decrementBy()
方法会更改当前的 Vector3D 对象并且不返回新的 Vector3D 对象。
参数
a:Vector3D — 包含要从当前 Vector3D 对象中减去的值的 Vector3D 对象。
|
相关 API 元素
distance | () | 方法 |
public static function distance(pt1:Vector3D, pt2:Vector3D):Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回两个 Vector3D 对象之间的距离。distance()
方法是静态方法。可以将此方法直接用作 Vector3D 类的方法,以获取两个三维点之间的欧几里德距离。
参数
pt1:Vector3D — 用作第一个三维点的 Vector3D 对象。
| |
pt2:Vector3D — 用作第二个三维点的 Vector3D 对象。
|
Number — 两个 Vector3D 对象之间的距离。
|
dotProduct | () | 方法 |
public function dotProduct(a:Vector3D):Number
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
如果当前 Vector3D 对象和作为参数指定的 Vector3D 对象均为单位顶点,此方法将返回这两个顶点之间所成角的余弦值。单位顶点是指向同一方向且长度为一的顶点。它们会在结果中将矢量长度作为一个因子删除。可以使用 normalize()
方法将一个矢量转换为单位矢量。
dotProduct()
方法会找出两个顶点之间所成的角。它还用于背面剔除或照明计算。背面剔除是一个用于确定从视点中隐藏哪些表面的过程。可以使用摄像头或眼睛视点的标准化顶点和多边形表面的顶点的叉积来获取点积。如果点积小于零,则表面将面向摄像头或查看者。如果两个单位顶点互相垂直,则二者正交且点积为零。如果两个单位顶点互相平行,则点积为一。
参数
a:Vector3D — 第二个 Vector3D 对象。
|
Number — 一个标量,它是当前 Vector3D 对象与指定的 Vector3D 对象之间的点积。
|
相关 API 元素
equals | () | 方法 |
public function equals(toCompare:Vector3D, allFour:Boolean = false):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
通过将当前 Vector3D 对象的 x、y 和 z 元素与指定的 Vector3D 对象的 x、y 和 z 元素进行比较,确定这两个对象是否相等。如果这些元素的值相同,则两个 Vector3D 对象相等。如果第二个可选参数设置为 true
,则将对 Vector3D 对象的所有四个元素(包括 w
属性)进行比较。
参数
toCompare:Vector3D — 要与当前 Vector3D 对象进行比较的 Vector3D 对象。
| |
allFour:Boolean (default = false ) — 一个可选参数,它指定在比较时是否使用 Vector3D 对象的 w 属性。
|
Boolean — 如果指定的 Vector3D 对象与当前 Vector3D 对象相等,则为 true 值;否则为 false 。
|
相关 API 元素
incrementBy | () | 方法 |
nearEquals | () | 方法 |
public function nearEquals(toCompare:Vector3D, tolerance:Number, allFour:Boolean = false):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
将当前 Vector3D 对象的元素与指定的 Vector3D 对象的元素进行比较,以确定它们是否大致相同。如果两个顶点的所有元素的值都相等或比较的结果在容差范围内,则两个 Vector3D 对象大致相等。两个元素的值之差必须小于作为 tolerance
参数指定的数字。如果第三个可选参数设置为 true
,则将对 Vector3D 对象的所有四个元素(包括 w
属性)进行比较。否则,比较中仅包含 x、y 和 z 元素。
参数
toCompare:Vector3D — 要与当前 Vector3D 对象进行比较的 Vector3D 对象。
| |
tolerance:Number — 一个用于确定容差因子的数字。如果 toCompare 参数中指定的 Vector3D 元素的值与当前 Vector3D 元素的值之差小于容差数,则将这两个值视为大致相等。
| |
allFour:Boolean (default = false ) — 一个可选参数,它指定在比较时是否使用 Vector3D 对象的 w 属性。
|
Boolean — 如果指定的 Vector3D 对象与当前 Vector3D 对象相等,则为 true 值;否则为 false 。
|
相关 API 元素
negate | () | 方法 |
public function negate():void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
将当前 Vector3D 对象设置为其逆对象。也可以将逆对象视为与原始对象相反的对象。当前 Vector3D 对象的 x
、y
和 z
属性的值将更改为 -x
、-y
和 -z
。
normalize | () | 方法 |
project | () | 方法 |
public function project():void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
将当前 Vector3D 对象的 x
、y
和 z
属性的值除以其 w
属性的值。
如果当前 Vector3D 对象是将一个 Vector3D 对象与一个投影 Matrix3D 对象相乘后获得的结果,则 w
属性可以容纳转换值。然后,project()
方法可以通过将这些元素除以 w
属性来完成投影。使用 Matrix3D.rawData
属性可创建投影 Matrix3D 对象。
scaleBy | () | 方法 |
setTo | () | 方法 |
subtract | () | 方法 |
public function subtract(a:Vector3D):Vector3D
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
从另一个 Vector3D 对象的 x、y 和 z 元素的值中减去当前 Vector3D 对象的 x、y 和 z 元素的值。subtract()
方法不更改当前的 Vector3D 对象。相反,此方法将返回一个具有新值的新的 Vector3D 对象。
参数
a:Vector3D — 要从当前 Vector3D 对象中减去的 Vector3D 对象。
|
Vector3D — 一个新的 Vector3D 对象,它是当前 Vector3D 对象与指定的 Vector3D 对象之差。
|
相关 API 元素
toString | () | 方法 |
X_AXIS | 常量 |
public static const X_AXIS:Vector3D
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义为 Vector3D 对象的 x 轴,坐标为 (1,0,0)。
Y_AXIS | 常量 |
public static const Y_AXIS:Vector3D
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义为 Vector3D 对象的 y 轴,坐标为 (0,1,0)。
Z_AXIS | 常量 |
public static const Z_AXIS:Vector3D
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义为 Vector3D 对象的 z 轴,坐标为 (0,0,1)。
Tue Jun 12 2018, 11:04 AM Z