添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
爱健身的灭火器  ·  You are a shining ...·  10 月前    · 
旅行中的红茶  ·  Hive Date and ...·  10 月前    · 
老实的打火机  ·  Personball's Blog - ...·  11 月前    · 
飞奔的企鹅  ·  GOM专业版软件免费试用·  1 年前    · 
flash.geom
public class Vector3D
继承 Vector3D Inheritance Object

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

Vector3D 类使用笛卡尔坐标 x、y 和 z 表示三维空间中的点或位置。与在二维空间中一样, x 属性表示水平轴, y 属性表示垂直轴。在三维空间中, z 属性表示深度。当对象向右移动时, x 属性的值会增大。当对象向下移动时, y 属性的值会增大。当对象远离视点时, z 属性的值会增大。若使用透视投影和缩放,则对象在靠近屏幕时会显得大一些,而在远离屏幕时会显得小一些。正如右手三维坐标系中一样,正向 z 轴指向远离查看者的方向,并且当对象远离查看者的视线时, z 属性的值增大。全局空间的原点 (0,0,0) 位于舞台的左上角。

相关 API 元素



公共属性
属性 由以下参数定义
Inherited 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 (x: Number = 0., y: Number = 0., z: Number = 0., w: Number = 0.)
创建 Vector3D 对象的实例。
Vector3D
将当前 Vector3D 对象的 x、y 和 z 元素的值与另一个 Vector3D 对象的 x、y 和 z 元素的值相加。
Vector3D
[静态] 返回两个矢量之间的弧度的角度。
Vector3D
返回一个新 Vector3D 对象,它是与当前 Vector3D 对象完全相同的副本。
Vector3D
copyFrom (sourceVector3D: Vector3D ): void
将源 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 对象的 x、y 和 z 元素进行比较,确定这两个对象是否相等。
Vector3D
Inherited
表示对象是否已经定义了指定的属性。
Object
按照指定的 Vector3D 对象的 x、y 和 z 元素的值递增当前 Vector3D 对象的 x、y 和 z 元素的值。
Vector3D
Inherited
isPrototypeOf (theClass: Object ): Boolean
表示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
nearEquals (toCompare: Vector3D , tolerance: Number , allFour: Boolean = false): Boolean
将当前 Vector3D 对象的元素与指定的 Vector3D 对象的元素进行比较,以确定它们是否大致相同。
Vector3D
将当前 Vector3D 对象设置为其逆对象。
Vector3D
通过将最前面的三个元素(x、y、z)除以矢量的长度可将 Vector3D 对象转换为单位矢量。
Vector3D
将当前 Vector3D 对象的 x、y 和 z 属性的值除以其 w 属性的值。
Vector3D
Inherited
表示指定的属性是否存在、是否可枚举。
Object
按标量(大小)缩放当前的 Vector3D 对象。
Vector3D
Inherited
设置循环操作动态属性的可用性。
Object
将 Vector3D 的成员设置为指定值
Vector3D
从另一个 Vector3D 对象的 x、y 和 z 元素的值中减去当前 Vector3D 对象的 x、y 和 z 元素的值。
Vector3D
Inherited
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。
Object
返回当前 Vector3D 对象的字符串表示形式。
Vector3D
Inherited
返回指定对象的原始值。
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

属性
length: Number [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

当前 Vector3D 对象的长度(大小),即从原点 (0,0,0) 到该对象的 x、y 和 z 坐标的距离。 w 属性将被忽略。单位矢量具有的长度或大小为一。



实现
public function get length(): Number

相关 API 元素

lengthSquared

属性
lengthSquared: Number [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

当前 Vector3D 对象长度的平方,它是使用 x y z 属性计算出来的。 w 属性将被忽略。尽可能使用 lengthSquared() 方法,而不要使用 Vector3D.length() 方法的 Math.sqrt() 方法调用,后者速度较慢。



实现
public function get lengthSquared(): Number

相关 API 元素

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 元素

project()

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

() 方法
public function clone(): Vector3D

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

返回一个新 Vector3D 对象,它是与当前 Vector3D 对象完全相同的副本。

返回
Vector3D — 一个新 Vector3D 对象,它是当前 Vector3D 对象的副本。

copyFrom

() 方法
public function copyFrom(sourceVector3D: Vector3D ): void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11, AIR 3.0, Flash Lite 4

将源 Vector3D 对象中的所有矢量数据复制到调用方 Vector3D 对象中。

参数

sourceVector3D : Vector3D — 要从中复制数据的 Vector3D 对象。

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

() 方法
public function incrementBy(a: Vector3D ): void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

按照指定的 Vector3D 对象的 x、y 和 z 元素的值递增当前 Vector3D 对象的 x、y 和 z 元素的值。与 Vector3D.add() 方法不同, incrementBy() 方法会更改当前的 Vector3D 对象并且不返回新的 Vector3D 对象。

参数

a : Vector3D — 要与当前的 Vector3D 对象相加的 Vector3D 对象。

相关 API 元素

add()

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

() 方法
public function normalize(): Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

通过将最前面的三个元素(x、y、z)除以矢量的长度可将 Vector3D 对象转换为单位矢量。单位顶点是具有同一方向且长度为一的顶点。它们通过将长度作为一个因子删除,从而简化了矢量计算。

返回
Number — 当前 Vector3D 对象的长度。

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

() 方法
public function scaleBy(s: Number ): void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

按标量(大小)缩放当前的 Vector3D 对象。Vector3D 对象的 x、y 和 z 元素乘以参数中指定的标量数字。例如,如果将矢量放大 10 倍,则得到的矢量的长度比原来的矢量大 10 倍。标量还可以更改矢量的方向。若将矢量乘以一个负数,则将反转该矢量的方向。

参数

s : Number — 一个用于缩放 Vector3D 对象的乘数(标量)。

setTo

() 方法
public function setTo(xa: Number , ya: Number , za: Number ): void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11, AIR 3.0, Flash Lite 4

将 Vector3D 的成员设置为指定值

参数

xa : Number — 要将 Vector 设置为的值。
ya : Number
za : Number

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

() 方法
public function toString(): String

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

返回当前 Vector3D 对象的字符串表示形式。该字符串包含 x y z 属性的值。

返回
String — 一个字符串,它包含 x y z 属性的值。
常量详细信息

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)。