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 Vector3D
AXISX
X单位向量static Vector3D
AXISY
Y单位向量static Vector3D
AXISZ
Z单位向量static Vector3D
ZERO
零向量
-
构造器概要
构造器 构造器和说明 Vector3D()
默认构造函数,初始化一个三维向量。Vector3D(double x, double y, double z)
构造函数,构造一个指定分量的向量。Vector3D(Point2D pt)
构造函数,根据二维点对象构造一个三维向量,z轴上为零。Vector3D(Point3D pt)
构造函数,根据三维点对象构造一个三维向量。Vector3D(Vector3D other)
构造函数,构造一个与之给定向量相同的新向量。
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 Vector3D
add(Point3D other)
计算当前向量与另一个向量的和,返回两个向量之和后的新向量。static Vector3D
add(Vector3D v1, Vector3D v2)
返回两个向量之间的和向量。void
addEquals(Point3D other)
计算当前向量与另一个向量的和,改变当前向量自身。double
angle(Vector3D other)
返回当前向量与另一个向量的无符号角度(角度制)。static double
angle(Vector3D v1, Vector3D v2)
返回两个向量之间的的无符号角度(角度制)。Vector3D
crossProduct(Vector3D other)
返回当前向量与另一个向量叉乘后的新向量。static Vector3D
crossProduct(Vector3D v1, Vector3D v2)
返回两个三维向量叉乘后的新向量。static double
distance(Point3D p1, Point3D p2)
返回两个向量之间的距离。double
distance(Vector3D other)
返回当前向量与另一个向量之间的距离。Vector3D
divide(double dScale)
计算当前向量与缩放系数的商,返回缩放后的新向量。static Vector3D
divide(Vector3D v1, double dScale)
计算三维向量对象与缩放系数的商,返回缩放后的新向量。void
divideEquals(double dScale)
计算当前向量与缩放系数的商,改变当前向量自身。double
dotProduct(Vector3D other)
返回当前向量与另一个向量点乘后的值。static double
dotProduct(Vector3D v1, Vector3D v2)
返回两个三维向量点乘后的值。double
getAt(int index)
返回此三维向量指定分量。double
getLength()
返回当前向量的模(长度)。double
getLengthSquared()
返回当前向量的模的平方。Vector3D
getNormalized()
返回当前向量单位化后的新向量。Vector3D
multiply(double dScale)
计算当前向量与缩放系数的乘积,返回缩放后的新向量。Vector3D
multiply(Matrix matrix)
返回当前向量矩阵变换后的新向量。static Vector3D
multiply(Vector3D v1, double dScale)
计算三维向量对象与缩放系数的乘积,返回缩放后的新向量。static Vector3D
multiply(Vector3D v, Matrix matrix)
返回三维向量矩阵变换后的新向量void
multiplyEquals(double dScale)
计算当前向量与缩放系数的乘积,改变当前向量自身。void
multiplyEquals(Matrix matrix)
当前向量矩阵变换,改变当前向量自身。void
normalized()
当前向量单位化,改变当前向量自身。static Vector3D
substract(Vector3D v1, Vector3D v2)
返回两个向量之间的差向量。Vector3D
subtract(Point3D other)
计算当前向量与另一个向量的向量差,返回当前向量减去other向量后的新向量。void
subtractEquals(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.