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(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}”。
|
public Point3D()
public Point3D(double x, double y, double z)
x
- Point3D 的 X 坐标值,单位为度。y
- Point3D 的 Y 坐标值,单位为度。z
- Point3D 的 Z 坐标值,单位为米。public Point3D(Point3D pt)
pt
- 给定的 Point3D 对象。public static final Point3D getEMPTY()
public void getEMPTYTest() { // 构造空的三维点对象 Point3D point3D = Point3D.getEMPTY(); System.out.println(point3D.isEmpty()); // true }
public double getX()
public void setX(double value)
value
- 指定的三维点对象的 X 坐标值。public double getY()
public void setY(double value)
value
- 指定的三维点对象的 Y 坐标值。public double getZ()
public void setZ(double value)
value
- 指定的三维点对象的 Z 坐标值。public void setValue(double dx, double dy, double dz)
dx
- 指定的三维点对象的 X 坐标值。dy
- 指定的三维点对象的 Y 坐标值。dz
- 指定的三维点对象的 Z 坐标值。public boolean isEmpty()
其使用的判断精度为默认零值精度。关于默认零值精度的详细信息请参见 Environment
类。
public boolean isZero()
public static Point3D ceiling(Point3D pt)
由于双精度值可能会在对其执行算术运算时丢失精度,因此两个逻辑上相等的双精度数之间的比较可能会失败。
pt
- 要转换的三维点对象。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} }
public static Point3D floor(Point3D pt)
pt
- 要转换的三维点对象。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} }
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); }
public static Point3D round(Point3D pt)
例如:
pt
- 要转换的三维点对象。public String toString()
public boolean equals(Point3D point3D)
由于双精度值可能会在对其执行算术运算时丢失精度,因此两个逻辑上相等的双精度数之间的比较可能会失败。
point3D
- 要与此三维点对象相比较的三维点对象。Copyright © 2021–2024 SuperMap. All rights reserved.