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。
    另请参阅:
    序列化表格
    • 字段详细资料

      • 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 - 缩放系数。
      • multiply

        public Vector3D multiply(Matrix matrix)
        返回当前向量矩阵变换后的新向量。
        参数:
        matrix - 变换矩阵。
        返回:
        新向量。
      • 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 - 第二个三维向量。
        返回:
        新向量。
      • multiply

        public static Vector3D multiply(Vector3D v,
                                        Matrix matrix)
        返回三维向量矩阵变换后的新向量
        参数:
        v - 三维向量。
        matrix - 变换矩阵。
        返回:
        新向量。

Copyright © 2021–2025 SuperMap. All rights reserved.