com.supermap.data

类 Point3D

  • 所有已实现的接口:
    Serializable
    直接已知子类:
    Vector3D


    public class Point3D
    extends Object
    implements Serializable
    三维点类。

    用于表示精度为 double 的三维点结构。三维点类,其实例为三维点对象,用于表示坐标值精度为 double 的三维点对象,即其坐标值大致范围为±5.0*1e-324到±1.7*1e308,有效位为15-16位。

    三维点对象是三维几何对象的基础,如三维线对象实际就是一串 Point3D 的点串,而三维面对象则是一串起始点和结束点相同的点串,因而在描绘三维几何对象的位置和形状上,三维点对象是一个很重要的角色。

    当使用默认构造函数创建一个 Point3D 对象时,其 X,Y,Z 坐标均为-1.7976931348623157e+308;还可以使用给定 X,Y,Z 坐标的方式,和创建已有三维点对象的拷贝的方式来构造一个新的三维点对象。

    该类除提供返回和设置三维点的坐标值的方法外,还提供了对已有三维点的坐标采取各种形式的取整来创建新的坐标值为整数的三维点结构的方法,以及平移该三维点对象的方法。

    另请参阅:
    序列化表格
    • 字段概要

      字段 
      限定符和类型 字段和说明
      double x 
      double y 
      double z 
    • 构造器概要

      构造器 
      构造器和说明
      Point3D()
      构造一个新的 Point3D 对象。
      Point3D(double x, double y, double z)
      根据给定的 Point3D 对象构造一个与其完全相同的新对象。
      Point3D(Point3D pt)
      根据给定的 Point3D 对象构造一个与其完全相同的新对象。
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      限定符和类型 方法和说明
      static Point3D ceiling(Point3D pt)
      通过将 Point3D 的坐标值舍入到与其接近的较大整数值,并以整数值构造一个新的 Point3D 返回。
      Point3D clone()
      返回当前 Point3D 对象的一个拷贝。
      boolean equals(Object obj)
      指定此 Point3D 是否包含与指定 System.Object 有相同的坐标。
      boolean equals(Point3D point3D)
      判定此三维点对象是否与指定的三维点对象相等,即有相同的坐标值。
      static Point3D floor(Point3D pt)
      返回一个新的三维点对象,其 X、Y Z 坐标值分别为小于等于指定三维点对象的 X、Y、Z 坐标值的最大整数值,例如:给定三维点对象的 X、Y、Z 坐标值为(32.12,20.67,10.44),则生成的新的三维点对象的 X 坐标值应取小于等于给定三维点对象 X 坐标值的最大整数值,所以新的三维点对象的 X 坐标值为32,同理新的三维点对象的 Y 坐标值为20,Z 坐标值为10,因此,得到的新的点对象的坐标为(32,20,10)。
      static Point3D getEMPTY()
      返回一个空的三维点对象,其 X,Y,Z 坐标值均为-1.7976931348623157e+308。
      double getX()
      返回此三维点对象的 X 坐标。
      double getY()
      返回此三维点对象的 Y 坐标。
      double getZ()
      返回此三维点对象的 Z 坐标。
      int hashCode()
      返回此 Point3D 结构体对象的哈希代码。
      boolean isEmpty()
      判断此点对象是否为空,即其 X, Y, Z 坐标是否都为-1.7976931348623157e+308。
      boolean isZero()
      判断 Point3D 对象是否为零值。
      void offset(double dx, double dy, double dz)
      将此三维点对象的坐标平移指定的量。
      static Point3D round(Point3D pt)
      返回一个新的三维点对象。
      void setValue(double dx, double dy, double dz)
      设置此三维点对象的 XYZ 坐标。
      void setX(double value)
      设置此三维点对象的 X 坐标。
      void setY(double value)
      设置此三维点对象的 Y 坐标。
      void setZ(double value)
      设置此三维点对象的 Z 坐标。
      String toString()
      创建一个表示此三维点对象的可读字符串,如 Point3D(2,3,4),返回”{X=2.0,Y=3.0,Z=4.0}”。
    • 字段详细资料

      • x

        public double x
      • y

        public double y
      • z

        public double z
    • 构造器详细资料

      • Point3D

        public Point3D()
        构造一个新的 Point3D 对象。
      • Point3D

        public Point3D(double x,
                       double y,
                       double z)
        根据给定的 Point3D 对象构造一个与其完全相同的新对象。
        参数:
        x - Point3D 的 X 坐标值,单位为度。
        y - Point3D 的 Y 坐标值,单位为度。
        z - Point3D 的 Z 坐标值,单位为米。
      • Point3D

        public Point3D(Point3D pt)
        根据给定的 Point3D 对象构造一个与其完全相同的新对象。
        参数:
        pt - 给定的 Point3D 对象。
    • 方法详细资料

      • getEMPTY

        public static final Point3D getEMPTY()
        返回一个空的三维点对象,其 X,Y,Z 坐标值均为-1.7976931348623157e+308。
        返回:
        一个空的三维点对象。
        示范代码:
        以下代码示范如何构造空的三维点对象。
         public void getEMPTYTest() {
                // 构造空的三维点对象
                Point3D point3D = Point3D.getEMPTY();
                System.out.println(point3D.isEmpty()); // true
            }
         
      • getX

        public double getX()
        返回此三维点对象的 X 坐标。单位为度。
        返回:
        此三维点对象的 X 坐标。
        默认值:
        默认值为 Double.MIN_VALUE 。
      • setX

        public void setX(double value)
        设置此三维点对象的 X 坐标。单位为度。
        参数:
        value - 指定的三维点对象的 X 坐标值。
      • getY

        public double getY()
        返回此三维点对象的 Y 坐标。单位为度。
        返回:
        三维点对象的 Y 坐标。
        默认值:
        默认值为 Double.MIN_VALUE 。
      • setY

        public void setY(double value)
        设置此三维点对象的 Y 坐标。单位为度。
        参数:
        value - 指定的三维点对象的 Y 坐标值。
      • getZ

        public double getZ()
        返回此三维点对象的 Z 坐标。单位为米。
        返回:
        此三维点对象的 Z 坐标。
        默认值:
        默认值为 Double.MIN_VALUE 。
      • setZ

        public void setZ(double value)
        设置此三维点对象的 Z 坐标。单位为米。
        参数:
        value - 指定的三维点对象的 Z 坐标值。
      • setValue

        public void setValue(double dx,
                             double dy,
                             double dz)
        设置此三维点对象的 XYZ 坐标。
        参数:
        dx - 指定的三维点对象的 X 坐标值。
        dy - 指定的三维点对象的 Y 坐标值。
        dz - 指定的三维点对象的 Z 坐标值。
      • isEmpty

        public boolean isEmpty()
        判断此点对象是否为空,即其 X, Y, Z 坐标是否都为-1.7976931348623157e+308。

        其使用的判断精度为默认零值精度。关于默认零值精度的详细信息请参见 Environment 类。

        返回:
        如果此 Point3D 对象为空则返回 true,否则返回 false。
        默认值:
        默认值为 false,即 Point3D 对象不为空。
      • isZero

        public boolean isZero()
        判断 Point3D 对象是否为零值。
        返回:
      • clone

        public Point3D clone()
        返回当前 Point3D 对象的一个拷贝。
        覆盖:
        clone 在类中 Object
        返回:
        通过克隆操作得到的 Point3D 对象。
      • ceiling

        public static Point3D ceiling(Point3D pt)
        通过将 Point3D 的坐标值舍入到与其接近的较大整数值,并以整数值构造一个新的 Point3D 返回。

        由于双精度值可能会在对其执行算术运算时丢失精度,因此两个逻辑上相等的双精度数之间的比较可能会失败。

        参数:
        pt - 要转换的三维点对象。
        返回:
        转换后的三维点对象。
        示范代码:
        以下代码示范对三维点几何对象进行 ceiling 操作。
         public void ceilingTest() {
                // 构造三维点对象
                Point3D point3D = new Point3D(100.3, 100.5, 100.8);
                System.out.println(point3D); // {X=100.3,Y=100.5,Z=100.8}
        
                // ceiling 操作
                Point3D point3D_c = Point3D.ceiling(point3D);
                System.out.println(point3D_c); // {X=101.0,Y=101.0,Z=101.0}
            }
         
      • floor

        public static Point3D floor(Point3D pt)
        返回一个新的三维点对象,其 X、Y Z 坐标值分别为小于等于指定三维点对象的 X、Y、Z 坐标值的最大整数值,例如:给定三维点对象的 X、Y、Z 坐标值为(32.12,20.67,10.44),则生成的新的三维点对象的 X 坐标值应取小于等于给定三维点对象 X 坐标值的最大整数值,所以新的三维点对象的 X 坐标值为32,同理新的三维点对象的 Y 坐标值为20,Z 坐标值为10,因此,得到的新的点对象的坐标为(32,20,10)。 如果给定的三维点对象的 X、 Y 或者 Z 坐标值为整数值,则新的三维点对象的 X、 Y 或者 Z 坐标值为与给定三维点对象相等的整数坐标值,例如:给定的三维点对象坐标值为(10,20,10),则新的三维点对象的坐标值为(10,20,10);如果给定的三维点对象的坐标值为(32.12,15,18),则新的三维点对象的坐标值为(32,15,18)。
        参数:
        pt - 要转换的三维点对象。
        返回:
        转换后的三维点对象。
        示范代码:
        以下代码示范对三维点几何对象进行 floor 操作。
         public void floorTest() {
                // 构造三维点对象
                Point3D point3D = new Point3D(100.3, 100.5, 100.8);
                System.out.println(point3D); // {X=100.3,Y=100.5,Z=100.8}
        
                // floor 操作
                Point3D point3D_f = Point3D.floor(point3D);
                System.out.println(point3D_f); // {X=100.0,Y=100.0,Z=100.0}
            }
         
      • offset

        public void offset(double dx,
                           double dy,
                           double dz)
        将此三维点对象的坐标平移指定的量。
        参数:
        dx - 沿 X 轴方向的偏移量。单位为度。
        dy - 沿 Y 轴方向的偏移量。单位为度。
        dz - 沿 Z 轴方向的偏移量。单位为米。
        示范代码:
        以下代码示范对三维点几何对象进行偏移操作。
         public void offsetTest() {
                // 构造三维点对象
                Point3D point3D = new Point3D(100, 100, 100);
                System.out.println(point3D); 
        
                // offset 操作
                point3D.offset(20.5, -51.6, 0);
                System.out.println(point3D); 
            }
         
      • round

        public static Point3D round(Point3D pt)
        返回一个新的三维点对象。如果给定对象的 X、Y 或 Z 坐标值是整数值,则新对象的坐标值取给定对象的整数值坐标;对于给定对象的 X、Y 或 Z 坐标值为小数时,则新对象的 X、Y 或 Z 坐标值取给定对象的小数坐标值经过舍入后的整数值,其中,小数部分的舍入存在一定的规则:取最接近小数的整数,如果小数正好处于两个整数中间,其中一个整数为偶数,另一个整数为奇数,则返回偶数。

        例如:

        • 给定的点对象的坐标为(32.12,26.67,10.40),则新的点对象的坐标为(32,27,10);
        • 给定的点对象的坐标为(32,26.67,10.40),则新的点对象的坐标为(32,27,10);
        • 给定的点对象的坐标为(32.5,25.5,10.40),则新的点对象的坐标为(32,26,10)。
        参数:
        pt - 要转换的三维点对象。
        返回:
        转换后的三维点对象。
      • toString

        public String toString()
        创建一个表示此三维点对象的可读字符串,如 Point3D(2,3,4),返回”{X=2.0,Y=3.0,Z=4.0}”。
        覆盖:
        toString 在类中 Object
        返回:
        表示此三维点对象的字符串。
      • equals

        public boolean equals(Object obj)
        指定此 Point3D 是否包含与指定 System.Object 有相同的坐标。
        覆盖:
        equals 在类中 Object
        参数:
        obj - 要测试的对象。
        返回:
        一个布尔值,若 obj 为 Point3D 并与此 Point3D 的坐标相等,则为 true,否则为 false。
      • equals

        public boolean equals(Point3D point3D)
        判定此三维点对象是否与指定的三维点对象相等,即有相同的坐标值。

        由于双精度值可能会在对其执行算术运算时丢失精度,因此两个逻辑上相等的双精度数之间的比较可能会失败。

        参数:
        point3D - 要与此三维点对象相比较的三维点对象。
        返回:
        如果 pt 与此三维点对象相同返回 true,否则返回 false。
      • hashCode

        public int hashCode()
        返回此 Point3D 结构体对象的哈希代码。
        覆盖:
        hashCode 在类中 Object
        返回:
        此 Point3D 结构体对象的哈希代码。

Copyright © 2021–2024 SuperMap. All rights reserved.