类 Vector3D
- 所有已实现的接口:
-
Serializable,Point<Euclidean3D>,Vector<Euclidean3D,,Vector3D> Blendable<Vector<Euclidean3D,Vector3D>>
此类的实例保证是不可变的。
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明static final Vector3D第一个规范向量的相反向量(坐标:-1, 0, 0)。static final Vector3D第二个规范向量的相反向量(坐标:0, -1, 0)。static final Vector3D第三个规范向量的相反向量(坐标:0, 0, -1)。static final Vector3D所有坐标均设置为NaN的向量。static final Vector3D所有坐标均设置为负无穷的向量。static final Vector3D第一个规范向量(坐标:1, 0, 0)。static final Vector3D第二个规范向量(坐标:0, 1, 0)。static final Vector3D第三个规范向量(坐标:0, 0, 1)。static final Vector3D所有坐标均设置为正无穷的向量。static final Vector3D空向量(坐标:0, 0, 0)。 -
构造器概要
构造器构造器说明Vector3D(double[] v) 简单构造函数。Vector3D(double alpha, double delta) 简单构造函数。Vector3D(double x, double y, double z) 简单构造函数。乘法构造函数。从另一个向量和一个比例因子构建向量。线性构造函数。从两个其他向量和相应的比例因子构建向量。线性构造函数。从三个其他向量和相应的比例因子构建向量。Vector3D(double a1, Vector3D u1, double a2, Vector3D u2, double a3, Vector3D u3, double a4, Vector3D u4) 线性构造函数。从四个其他向量和相应的比例因子构建向量。 -
方法概要
修饰符和类型方法说明add(double factor, Vector<Euclidean3D, Vector3D> v) 将缩放的向量添加到实例。add(Vector<Euclidean3D, Vector3D> v) 将向量添加到实例。static double计算两个向量之间的角距离。static Vector3DcrossProduct(Vector3D v1, Vector3D v2) 计算两个向量的叉乘积。计算实例与另一个向量的叉乘积。static double根据L2范数计算两个向量之间的距离。doubledistance(Point<Euclidean3D> v) 计算实例与另一点之间的距离。static double根据L1范数计算两个向量之间的距离。double根据L1范数计算实例与另一个向量之间的距离。static doubledistanceInf(Vector3D v1, Vector3D v2) 根据L∞范数计算两个向量之间的距离。double根据L∞范数计算实例与另一个向量之间的距离。static doubledistanceSq(Vector3D v1, Vector3D v2) 计算两个向量之间的距离的平方。double计算实例与另一个向量之间的距离的平方。static doubledotProduct(Vector3D v1, Vector3D v2) 计算两个向量的点积。double计算实例与另一个向量的点积。boolean检查两个三维向量是否相等。booleanequalsIeee754(Object other) 检查两个三维向量是否相等。doublegetAlpha()获取向量的方位角。doublegetDelta()获取向量的仰角。doublegetNorm()获取向量的L2范数。doublegetNorm1()获取向量的L1范数。double获取向量的L∞范数。double获取向量的范数的平方。getSpace()获取点所属的空间。doublegetX()获取向量的横坐标。doublegetY()获取向量的纵坐标。doublegetZ()获取向量的高度。getZero()获取向量空间的零向量或仿射空间的原点。inthashCode()获取三维向量的哈希码。boolean如果此向量的任何坐标为无穷大且没有NaN,则返回true;否则返回false。booleanisNaN()如果此点的任何坐标为NaN,则返回true;否则返回false。negate()获取实例的相反向量。获取与实例正交的向量。scalarMultiply(double a) 将实例乘以标量。subtract(double factor, Vector<Euclidean3D, Vector3D> v) 从实例中减去一个缩放的向量。从实例中减去一个向量。double[]toArray()将向量坐标作为三维数组返回。toString()获取此向量的字符串表示形式。toString(NumberFormat format) 获取此向量的字符串表示形式。从接口继承的方法 org.hipparchus.geometry.Vector
blendArithmeticallyWith, normalize
-
字段详细资料
-
ZERO
空向量(坐标:0, 0, 0)。 -
PLUS_I
第一个规范向量(坐标:1, 0, 0)。 -
MINUS_I
第一个规范向量的相反向量(坐标:-1, 0, 0)。 -
PLUS_J
第二个规范向量(坐标:0, 1, 0)。 -
MINUS_J
第二个规范向量的相反向量(坐标:0, -1, 0)。 -
PLUS_K
第三个规范向量(坐标:0, 0, 1)。 -
MINUS_K
第三个规范向量的相反向量(坐标:0, 0, -1)。 -
NaN
所有坐标均设置为NaN的向量。 -
POSITIVE_INFINITY
所有坐标均设置为正无穷的向量。 -
NEGATIVE_INFINITY
所有坐标均设置为负无穷的向量。
-
-
构造器详细资料
-
Vector3D
public Vector3D(double x, double y, double z) 简单构造函数。根据其坐标构建向量- 参数:
-
x- 横坐标 -
y- 纵坐标 -
z- 高度 - 另请参阅:
-
Vector3D
简单构造函数。根据其坐标构建向量- 参数:
-
v- 坐标数组 - 抛出:
-
MathIllegalArgumentException- 如果数组不具有3个元素 - 另请参阅:
-
Vector3D
public Vector3D(double alpha, double delta) 简单构造函数。根据方位角坐标构建向量- 参数:
-
alpha- 绕Z轴的方位角(α)(0为+X,π/2为+Y,π为-X,3π/2为-Y) -
delta- (XY)平面上的仰角(δ),范围从-π/2到+π/2 - 另请参阅:
-
Vector3D
乘法构造函数。从另一个向量和一个比例因子构建向量。构建的向量将为a * u- 参数:
-
a- 比例因子 -
u- 基础(未缩放)向量
-
Vector3D
线性构造函数。从两个其他向量和相应的比例因子构建向量。构建的向量将为a1 * u1 + a2 * u2- 参数:
-
a1- 第一个比例因子 -
u1- 第一个基础(未缩放)向量 -
a2- 第二个比例因子 -
u2- 第二个基础(未缩放)向量
-
Vector3D
线性构造函数。从三个- 参数:
-
a1- 第一个比例因子 -
u1- 第一个基础(未缩放)向量 -
a2- 第二个比例因子 -
u2- 第二个基础(未缩放)向量 -
a3- 第三个比例因子 -
u3- 第三个基础(未缩放)向量
-
Vector3D
public Vector3D(double a1, Vector3D u1, double a2, Vector3D u2, double a3, Vector3D u3, double a4, Vector3D u4) 线性构造函数 从其他四个向量和相应的比例因子构建一个向量。构建的向量将为 a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4- 参数:
-
a1- 第一个比例因子 -
u1- 第一个基础(未缩放)向量 -
a2- 第二个比例因子 -
u2- 第二个基础(未缩放)向量 -
a3- 第三个比例因子 -
u3- 第三个基础(未缩放)向量 -
a4- 第四个比例因子 -
u4- 第四个基础(未缩放)向量
-
-
方法详细资料
-
getX
public double getX()获取向量的横坐标。- 返回:
- 向量的横坐标
- 另请参阅:
-
getY
public double getY()获取向量的纵坐标。- 返回:
- 向量的纵坐标
- 另请参阅:
-
getZ
public double getZ()获取向量的高度。- 返回:
- 向量的高度
- 另请参阅:
-
toArray
public double[] toArray()将向量坐标作为三维数组返回。- 返回:
- 向量坐标
- 另请参阅:
-
getSpace
获取点所属的空间。- 指定者:
-
getSpace在接口中Point<Euclidean3D> - 返回:
- 包含的空间
-
getZero
获取向量空间的零向量或仿射空间的原点。- 指定者:
-
getZero在接口中Vector<Euclidean3D,Vector3D> - 返回:
- 向量空间的零向量或仿射空间的原点
-
getNorm1
public double getNorm1()获取向量的 L1 范数。- 指定者:
-
getNorm1在接口中Vector<Euclidean3D,Vector3D> - 返回:
- 向量的 L1 范数
-
getNorm
public double getNorm()获取向量的 L2 范数。- 指定者:
-
getNorm在接口中Vector<Euclidean3D,Vector3D> - 返回:
- 向量的欧几里德范数
-
getNormSq
public double getNormSq()获取向量的范数的平方。- 指定者:
-
getNormSq在接口中Vector<Euclidean3D,Vector3D> - 返回:
- 向量的欧几里德范数的平方
-
getNormInf
public double getNormInf()获取向量的 L∞ 范数。- 指定者:
-
getNormInf在接口中Vector<Euclidean3D,Vector3D> - 返回:
- 向量的 L∞ 范数
-
getAlpha
public double getAlpha()获取向量的方位角。- 返回:
- 向量的方位角(α),介于 -π 和 +π 之间
- 另请参阅:
-
getDelta
public double getDelta()获取向量的仰角。- 返回:
- 向量的仰角(δ),介于 -π/2 和 +π/2 之间
- 另请参阅:
-
add
将一个向量添加到实例中。- 指定者:
-
add在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
v- 要添加的向量 - 返回:
- 一个新的向量
-
add
将一个经过缩放的向量添加到实例中。- 指定者:
-
add在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
factor- 添加之前应用于 v 的比例因子 -
v- 要添加的向量 - 返回:
- 一个新的向量
-
subtract
从实例中减去一个向量。- 指定者:
-
subtract在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
v- 要减去的向量 - 返回:
- 一个新的向量
-
subtract
从实例中减去一个经过缩放的向量。- 指定者:
-
subtract在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
factor- 减去之前应用于 v 的比例因子 -
v- 要减去的向量 - 返回:
- 一个新的向量
-
orthogonal
获取与实例正交的向量。有无限多个与实例正交的归一化向量。此方法几乎任意地选择其中一个。当需要计算一个轴与预定义方向中的一个轴对齐的参考框架时,这是有用的。以下示例显示了如何构建一个框架,其中 k 轴与已知向量 u 对齐:
Vector3D k = u.normalize(); Vector3D i = k.orthogonal(); Vector3D j = Vector3D.crossProduct(k, i);- 返回:
- 一个新的与实例正交的归一化向量
- 抛出:
-
MathRuntimeException- 如果实例的范数为零
-
angle
计算两个向量之间的角分离。此方法使用点积计算两个向量之间的角分离,用于相距较远的向量,使用叉积用于几乎对齐的向量。这样可以在所有情况下获得良好的精度,即使对于非常接近的向量也是如此。
- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- v1 和 v2 之间的角分离
- 抛出:
-
MathRuntimeException- 如果任一向量的范数为零
-
negate
获取实例的相反向量。- 指定者:
-
negate</
-
scalarMultiply
Multiply the instance by a scalar.- 指定者:
-
scalarMultiply在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
a- scalar - 返回:
- a new vector
-
isNaN
public boolean isNaN()如果此点的任何坐标为NaN,则返回true;否则返回false- 指定者:
-
isNaN在接口中Point<Euclidean3D> - 返回:
- 如果此点的任何坐标为NaN,则返回true;否则返回false
-
isInfinite
public boolean isInfinite()如果此向量的任何坐标为无穷大且没有NaN,则返回true;否则返回false- 指定者:
-
isInfinite在接口中Vector<Euclidean3D,Vector3D> - 返回:
- 如果此向量的任何坐标为无穷大且没有NaN,则返回true;否则返回false
-
equals
测试两个3D向量是否相等。如果两个3D向量的所有坐标完全相同,并且没有
Double.NaN,则认为这两个3D向量相等。NaN坐标被认为全局影响向量并相互相等 - 即,如果3D向量的任何一个(或全部)坐标等于Double.NaN,则该3D向量等于NaN。 -
equalsIeee754
测试两个3D向量是否相等。如果两个3D向量的所有坐标完全相同,并且没有
NaN,则认为这两个3D向量相等。根据IEEE754处理,如果任一向量的任何坐标为
NaN,则认为这两个向量不同。这意味着Vector3D.NaN.equals(Vector3D.NaN)返回false,尽管实例与自身进行了检查。- 参数:
-
other- 要测试是否与此相等的对象 - 返回:
- 如果两个3D向量对象相等,则返回true;如果对象为null、不是Vector3D的实例或不等于此Vector3D实例,则返回false
- 从以下版本开始:
- 2.1
-
hashCode
public int hashCode()获取3D向量的哈希码。所有NaN值具有相同的哈希码。
-
dotProduct
计算此实例和另一个向量的点积。该实现使用特定的乘法和加法算法来保持精度并减少抵消效应。即使对于几乎正交的向量,它也应该非常精确。
- 指定者:
-
dotProduct在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
v- 第二个向量 - 返回:
- 点积 this.v
- 另请参阅:
-
crossProduct
计算此实例与另一个向量的叉积。- 参数:
-
v- 其他向量 - 返回:
- 叉积 this ^ v 作为新的Vector3D
-
distance1
根据L1范数计算此实例和另一个向量之间的距离。调用此方法等效于调用:
q.subtract(p).getNorm1(),只是不会构建中间向量- 指定者:
-
distance1在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
v- 第二个向量 - 返回:
- 根据L1范数计算此实例和p之间的距离
-
distance
计算此实例与另一个点之间的距离。- 指定者:
-
distance在接口中Point<Euclidean3D> - 参数:
-
v- 第二个点 - 返回:
- 此实例与p之间的距离
-
distanceInf
根据L∞范数计算此实例和另一个向量之间的距离。调用此方法等效于调用:
q.subtract(p).getNormInf(),只是不会构建中间向量- 指定者:
-
distanceInf在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
v- 第二个向量 - 返回:
- 根据L∞范数计算此实例和p之间的距离
-
distanceSq
计算此实例与另一个向量之间的距离的平方。调用此方法等效于调用:
q.subtract(p).getNormSq(),只是不会构建中间向量- 指定者:
-
distanceSq在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
v- 第二个向量 - 返回:
- 此实例与p之间的距离的平方
-
dotProduct
计算两个向量的点积。- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- 点积 v1.v2
-
crossProduct
计算两个向量的叉积。- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- 叉积 v1 ^ v2 作为新的Vector
-
distance1
根据L1范数计算两个向量之间的距离。调用此方法等效于调用:
v1.subtract(v2).getNorm1(),只是不会构建中间向量- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- 根据L1范数计算v1和v2之间的距离
-
distance
根据L2范数计算两个向量之间的距离。调用此方法等效于调用:
v1.subtract(v2).getNorm(),只是不会构建中间向量- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- 根据L2范数计算v1和v2之间的距离
-
distanceInf
根据L∞范数计算两个向量之间的距离。调用此方法等效于调用:
v1.subtract(v2).getNormInf(),只是不会构建中间向量- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- 根据L∞范数计算v1和v2之间的距离
-
distanceSq
计算两个向量之间的距离的平方。调用此方法等效于调用:
v1.subtract(v2).getNormSq(),只是不会构建中间向量- 参数:
-
v1- 第一个向量 -
v2- 第二个向量 - 返回:
- v1和v2之间的距禮的平方
-
toString
获取此向量的字符串表示形式。 -
toString
获取此向量的字符串表示形式。- 指定者:
-
toString在接口中Vector<Euclidean3D,Vector3D> - 参数:
-
format- 组件的自定义格式 - 返回:
- 此向量的字符串表示形式
-