com.supermap.data
类 Vector3D
- java.lang.Object
-
- com.supermap.data.Point3D
-
- com.supermap.data.Vector3D
-
- 所有已实现的接口:
- Serializable
public class Vector3D extends Point3D
三维向量类。三维向量在三维空间中表示一个具有方向和大小的量,通常用三个有序实数表示,分别对应x,y,z轴上的分量。而分量指的是向量在各个坐标轴上的投影值。支持返回向量长度、不同向量间的距离、角度(弧度制),支持向量间的点乘、叉乘、矩阵变换等计算。
其坐标值大致范围为±5.0*1e-324到±1.7*1e308,有效位为15-16位。
该类除提供返回和设置三维向量的坐标值的方法外,还提供了三维向量的基础运算,包括但不限于向量的加、减、点乘、叉乘等运算。
- 从以下版本开始:
- 11.3.0。
- 另请参阅:
- 序列化表格
-
-
字段概要
字段 限定符和类型 字段和说明 static Vector3DAXISXX单位向量static Vector3DAXISYY单位向量static Vector3DAXISZZ单位向量static Vector3DZERO零向量
-
构造器概要
构造器 构造器和说明 Vector3D()默认构造函数,初始化一个三维向量。Vector3D(double x, double y, double z)构造函数,构造一个指定分量的向量。Vector3D(Point2D pt)构造函数,根据二维点对象构造一个三维向量,z轴上为零。Vector3D(Point3D pt)构造函数,根据三维点对象构造一个三维向量。Vector3D(Vector3D other)构造函数,构造一个与之给定向量相同的新向量。
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 Vector3Dadd(Point3D other)计算当前向量与另一个向量的和,返回两个向量之和后的新向量。static Vector3Dadd(Vector3D v1, Vector3D v2)返回两个向量之间的和向量。voidaddEquals(Point3D other)计算当前向量与另一个向量的和,改变当前向量自身。doubleangle(Vector3D other)返回当前向量与另一个向量的无符号角度(角度制)。static doubleangle(Vector3D v1, Vector3D v2)返回两个向量之间的的无符号角度(角度制)。Vector3DcrossProduct(Vector3D other)返回当前向量与另一个向量叉乘后的新向量。static Vector3DcrossProduct(Vector3D v1, Vector3D v2)返回两个三维向量叉乘后的新向量。static doubledistance(Point3D p1, Point3D p2)返回两个向量之间的距离。doubledistance(Vector3D other)返回当前向量与另一个向量之间的距离。Vector3Ddivide(double dScale)计算当前向量与缩放系数的商,返回缩放后的新向量。static Vector3Ddivide(Vector3D v1, double dScale)计算三维向量对象与缩放系数的商,返回缩放后的新向量。voiddivideEquals(double dScale)计算当前向量与缩放系数的商,改变当前向量自身。doubledotProduct(Vector3D other)返回当前向量与另一个向量点乘后的值。static doubledotProduct(Vector3D v1, Vector3D v2)返回两个三维向量点乘后的值。doublegetAt(int index)返回此三维向量指定分量。doublegetLength()返回当前向量的模(长度)。doublegetLengthSquared()返回当前向量的模的平方。Vector3DgetNormalized()返回当前向量单位化后的新向量。Vector3Dmultiply(double dScale)计算当前向量与缩放系数的乘积,返回缩放后的新向量。Vector3Dmultiply(Matrix matrix)返回当前向量矩阵变换后的新向量。static Vector3Dmultiply(Vector3D v1, double dScale)计算三维向量对象与缩放系数的乘积,返回缩放后的新向量。static Vector3Dmultiply(Vector3D v, Matrix matrix)返回三维向量矩阵变换后的新向量voidmultiplyEquals(double dScale)计算当前向量与缩放系数的乘积,改变当前向量自身。voidmultiplyEquals(Matrix matrix)当前向量矩阵变换,改变当前向量自身。voidnormalized()当前向量单位化,改变当前向量自身。static Vector3Dsubstract(Vector3D v1, Vector3D v2)返回两个向量之间的差向量。Vector3Dsubtract(Point3D other)计算当前向量与另一个向量的向量差,返回当前向量减去other向量后的新向量。voidsubtractEquals(Point3D other)计算当前向量与另一个向量的向量差。
-
-
-
字段详细资料
-
ZERO
public static final Vector3D ZERO
零向量
-
AXISX
public static final Vector3D AXISX
X单位向量
-
AXISY
public static final Vector3D AXISY
Y单位向量
-
AXISZ
public static final Vector3D AXISZ
Z单位向量
-
-
构造器详细资料
-
Vector3D
public Vector3D()
默认构造函数,初始化一个三维向量。其x,y,z坐标为(1,0,0)。
-
Vector3D
public Vector3D(double x, double y, double z)构造函数,构造一个指定分量的向量。- 参数:
x- 向量在x轴上的分量。y- 向量在y轴上的分量。z- 向量在z轴上的分量。
-
Vector3D
public Vector3D(Point3D pt)
构造函数,根据三维点对象构造一个三维向量。- 参数:
pt- 三维点对象。
-
Vector3D
public Vector3D(Point2D pt)
构造函数,根据二维点对象构造一个三维向量,z轴上为零。- 参数:
pt- 二维点对象。
-
Vector3D
public Vector3D(Vector3D other)
构造函数,构造一个与之给定向量相同的新向量。- 参数:
other- 三维向量对象。
-
-
方法详细资料
-
getAt
public double getAt(int index)
返回此三维向量指定分量。- 参数:
index- 分量索引,应在[0,2],对应x,y,z分量。- 返回:
- 分量值。index为0,返回x;index为1,返回y;index为2,返回z。
- 抛出:
IndexOutOfBoundsException- 索引越界。
-
subtract
public Vector3D subtract(Point3D other)
计算当前向量与另一个向量的向量差,返回当前向量减去other向量后的新向量。- 参数:
other- 第二操作对象,参数类型支持Point3D、Vector3D。- 返回:
- 新向量,即当前向量减去另一个向量后的结果。
-
subtractEquals
public void subtractEquals(Point3D other)
计算当前向量与另一个向量的向量差。即当前向量减other向量,改变当前向量自身。- 参数:
other- 第二操作对象,参数类型支持Point3D、Vector3D。
-
multiply
public Vector3D multiply(double dScale)
计算当前向量与缩放系数的乘积,返回缩放后的新向量。- 参数:
dScale- 缩放系数。- 返回:
- 新向量。即当前向量缩放后的结果。
-
multiplyEquals
public void multiplyEquals(double dScale)
计算当前向量与缩放系数的乘积,改变当前向量自身。- 参数:
dScale- 缩放系数。
-
multiplyEquals
public void multiplyEquals(Matrix matrix)
当前向量矩阵变换,改变当前向量自身。- 参数:
matrix- 变换矩阵。
-
getNormalized
public Vector3D getNormalized()
返回当前向量单位化后的新向量。- 返回:
- 新向量。
-
normalized
public void normalized()
当前向量单位化,改变当前向量自身。
-
add
public Vector3D add(Point3D other)
计算当前向量与另一个向量的和,返回两个向量之和后的新向量。- 参数:
other- 另一个操作对象,参数类型支持Point3D、Vector3D。- 返回:
- 新向量。
-
addEquals
public void addEquals(Point3D other)
计算当前向量与另一个向量的和,改变当前向量自身。- 参数:
other- 另一个操作对象,参数类型支持Point3D、Vector3D。
-
divide
public Vector3D divide(double dScale)
计算当前向量与缩放系数的商,返回缩放后的新向量。- 参数:
dScale- 缩放系数。- 返回:
- 新向量。
-
divideEquals
public void divideEquals(double dScale)
计算当前向量与缩放系数的商,改变当前向量自身。- 参数:
dScale- 缩放系数。- 抛出:
ArithmeticException- 整数除以0.
-
crossProduct
public Vector3D crossProduct(Vector3D other)
返回当前向量与另一个向量叉乘后的新向量。- 参数:
other- 三维向量对象。- 返回:
- 新向量,即叉乘后的新向量。
-
dotProduct
public double dotProduct(Vector3D other)
返回当前向量与另一个向量点乘后的值。- 参数:
other- 三维向量对象。- 返回:
- 向量积。
-
getLength
public double getLength()
返回当前向量的模(长度)。- 返回:
- 长度。
-
getLengthSquared
public double getLengthSquared()
返回当前向量的模的平方。- 返回:
- 模长。
-
distance
public double distance(Vector3D other)
返回当前向量与另一个向量之间的距离。- 参数:
other- 三维向量对象。- 返回:
- 距离。
-
angle
public double angle(Vector3D other)
返回当前向量与另一个向量的无符号角度(角度制)。- 参数:
other- 三维向量对象。- 返回:
- 角度。
-
angle
public static double angle(Vector3D v1, Vector3D v2)
返回两个向量之间的的无符号角度(角度制)。- 参数:
v1- 第一个三维向量对象。v2- 第二个三维向量对象。- 返回:
- 角度。
-
distance
public static double distance(Point3D p1, Point3D p2)
返回两个向量之间的距离。- 参数:
p1- 第一个三维向量对象或三维点,参数类型支持Point3D、Vector3D。p2- 第二个三维向量对象或三维点,参数类型支持Point3D、Vector3D。- 返回:
- 距离。
-
add
public static Vector3D add(Vector3D v1, Vector3D v2)
返回两个向量之间的和向量。- 参数:
v1- 第一个三维向量对象。v1- 第二个三维向量对象。- 返回:
- 和向量。
-
substract
public static Vector3D substract(Vector3D v1, Vector3D v2)
返回两个向量之间的差向量。- 参数:
v1- 第一个三维向量对象。v1- 第二个三维向量对象。- 返回:
- 差向量。
-
multiply
public static Vector3D multiply(Vector3D v1, double dScale)
计算三维向量对象与缩放系数的乘积,返回缩放后的新向量。- 参数:
v1- 三维向量对象。dScale- 缩放系数。- 返回:
- 新向量。
-
divide
public static Vector3D divide(Vector3D v1, double dScale)
计算三维向量对象与缩放系数的商,返回缩放后的新向量。- 参数:
v1- 三维向量。dScale- 缩放系数,dScale不能为零。- 返回:
- 新向量。
- 抛出:
ArithmeticException- 数值溢出。
-
dotProduct
public static double dotProduct(Vector3D v1, Vector3D v2)
返回两个三维向量点乘后的值。- 参数:
v1- 第一个三维向量。v2- 第二个三维向量。- 返回:
- 点乘值。
-
crossProduct
public static Vector3D crossProduct(Vector3D v1, Vector3D v2)
返回两个三维向量叉乘后的新向量。- 参数:
v1- 第一个三维向量。v2- 第二个三维向量。- 返回:
- 新向量。
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.