public class Vector3D extends Point3D
支持返回向量长度、不同向量间的距离、角度(弧度制),支持向量间的点乘、叉乘、矩阵变换等计算。
其坐标值大致范围为±5.0 *1e-324到 ±1.7 *1e308,有效位为15-16位。
该类除提供返回和设置三维向量的坐标值的方法外,还提供了三维向量的基础运算,包括但不限于向量的加、减、点乘、叉乘等运算。
限定符和类型 | 字段和说明 |
---|---|
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)
计算当前向量与另一个向量的向量差。
|
public static final Vector3D ZERO
public static final Vector3D AXISX
public static final Vector3D AXISY
public static final Vector3D AXISZ
public Vector3D()
public Vector3D(double x, double y, double z)
x
- 向量在x轴上的分量。y
- 向量在y轴上的分量。z
- 向量在z轴上的分量。public Vector3D(Point3D pt)
pt
- 三维点对象。public Vector3D(Point2D pt)
pt
- 二维点对象。public Vector3D(Vector3D other)
other
- 三维向量对象。public double getAt(int index)
index
- 分量索引,应在[0,2],对应x,y,z分量。IndexOutOfBoundsException
- 索引越界。public Vector3D subtract(Point3D other)
other
- 第二操作对象,参数类型支持Point3D、Vector3D。public void subtractEquals(Point3D other)
other
- 第二操作对象,参数类型支持Point3D、Vector3D。public Vector3D multiply(double dScale)
dScale
- 缩放系数。public void multiplyEquals(double dScale)
dScale
- 缩放系数。public void multiplyEquals(Matrix matrix)
matrix
- 变换矩阵。public Vector3D getNormalized()
public void normalized()
public Vector3D add(Point3D other)
other
- 另一个操作对象,参数类型支持Point3D、Vector3D。public void addEquals(Point3D other)
other
- 另一个操作对象,参数类型支持Point3D、Vector3D。public Vector3D divide(double dScale)
dScale
- 缩放系数。public void divideEquals(double dScale)
dScale
- 缩放系数。public Vector3D crossProduct(Vector3D other)
other
- 三维向量对象。public double dotProduct(Vector3D other)
other
- 三维向量对象。public double getLength()
public double getLengthSquared()
public double distance(Vector3D other)
other
- 三维向量对象。public double angle(Vector3D other)
other
- 三维向量对象。public static double angle(Vector3D v1, Vector3D v2)
v1
- 第一个三维向量对象。v2
- 第二个三维向量对象。public static double distance(Point3D p1, Point3D p2)
p1
- 第一个三维向量对象或三维点,参数类型支持Point3D、Vector3D。p2
- 第二个三维向量对象或三维点,参数类型支持Point3D、Vector3D。public static Vector3D add(Vector3D v1, Vector3D v2)
v1
- 第一个三维向量对象。v1
- 第二个三维向量对象。public static Vector3D substract(Vector3D v1, Vector3D v2)
v1
- 第一个三维向量对象。v1
- 第二个三维向量对象。public static Vector3D multiply(Vector3D v1, double dScale)
v1
- 三维向量对象。dScale
- 缩放系数。public static Vector3D divide(Vector3D v1, double dScale)
v1
- 三维向量。dScale
- 缩放系数,dScale不能为零。public static double dotProduct(Vector3D v1, Vector3D v2)
v1
- 第一个三维向量。v2
- 第二个三维向量。public static Vector3D crossProduct(Vector3D v1, Vector3D v2)
v1
- 第一个三维向量。v2
- 第二个三维向量。Copyright © 2021–2024 SuperMap. All rights reserved.