com.supermap.data
类 Point3D
- java.lang.Object
-
- 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 坐标的方式,和创建已有三维点对象的拷贝的方式来构造一个新的三维点对象。
该类除提供返回和设置三维点的坐标值的方法外,还提供了对已有三维点的坐标采取各种形式的取整来创建新的坐标值为整数的三维点结构的方法,以及平移该三维点对象的方法。
- 另请参阅:
- 序列化表格
-
-
构造器概要
构造器 构造器和说明 Point3D()构造一个新的 Point3D 对象。Point3D(double x, double y, double z)根据给定的 Point3D 对象构造一个与其完全相同的新对象。Point3D(double x, double y, double z, double m)根据给定的 Point3D 对象构造一个与其完全相同的新对象。Point3D(Point3D pt)根据给定的 Point3D 对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 static Point3Dceiling(Point3D pt)通过将 Point3D 的坐标值舍入到与其接近的较大整数值,并以整数值构造一个新的 Point3D 返回。Point3Dclone()返回当前 Point3D 对象的一个拷贝。booleanequals(Object obj)指定此Point3D是否包含与指定 System.Object 有相同的坐标。booleanequals(Point3D point3D)判定此三维点对象是否与指定的三维点对象相等,即有相同的坐标值。static Point3Dfloor(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 Point3DgetEMPTY()返回一个空的三维点对象,其 X,Y,Z 坐标值均为-1.7976931348623157e+308。doublegetM()获取此点对象的 M 坐标,如果M值无效,返回Double.NaNdoublegetX()返回此三维点对象的 X 坐标。doublegetY()返回此三维点对象的 Y 坐标。doublegetZ()返回此三维点对象的 Z 坐标。inthashCode()返回此 Point3D 结构体对象的哈希代码。booleanisEmpty()判断此点对象是否为空,即其 X, Y, Z 坐标是否都为-1.7976931348623157e+308。booleanisZero()判断 Point3D 对象是否为零值。voidoffset(double dx, double dy, double dz)将此三维点对象的坐标平移指定的量。static Point3Dround(Point3D pt)返回一个新的三维点对象。voidsetM(double value)设置此点对象的 M 坐标voidsetValue(double dx, double dy, double dz)设置此三维点对象的 XYZ 坐标。voidsetX(double value)设置此三维点对象的 X 坐标。voidsetY(double value)设置此三维点对象的 Y 坐标。voidsetZ(double value)设置此三维点对象的 Z 坐标。StringtoString()创建一个表示此三维点对象的可读字符串,如 Point3D(2,3,4),返回”{X=2.0,Y=3.0,Z=4.0}”。
-
-
-
构造器详细资料
-
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(double x, double y, double z, double m)根据给定的 Point3D 对象构造一个与其完全相同的新对象。- 参数:
x- Point3D 的 X 坐标值。y- Point3D 的 Y 坐标值。z- Point3D 的 Z 坐标值。m- Point3D 的 M 坐标值。- 从以下版本开始:
- 12.0.0
-
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 坐标值。
-
setM
public void setM(double value)
设置此点对象的 M 坐标- 参数:
value- 指定的此点对象的 M 坐标值。- 从以下版本开始:
- 12.0.0
-
getM
public double getM()
获取此点对象的 M 坐标,如果M值无效,返回Double.NaN- 返回:
- 此点对象的 Y 坐标。
- 从以下版本开始:
- 12.0.0
-
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类。
-
isZero
public boolean isZero()
判断 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}”。
-
equals
public boolean equals(Point3D point3D)
判定此三维点对象是否与指定的三维点对象相等,即有相同的坐标值。由于双精度值可能会在对其执行算术运算时丢失精度,因此两个逻辑上相等的双精度数之间的比较可能会失败。
- 参数:
point3D- 要与此三维点对象相比较的三维点对象。- 返回:
- 如果 pt 与此三维点对象相同返回 true,否则返回 false。
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.