package java3d; public class Point3d extends Tuple3d { // コンストラクタ public Point3d() { this.x = 0; this.y = 0; this.z = 0; } public Point3d(double[] p) { this.x = p[0]; this.y = p[1]; this.z = p[2]; } public Point3d(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public Point3d(Point3d p1) { this.x = p1.x; this.y = p1.y; this.z = p1.z; } public Point3d(Tuple3d v) { this.x = v.x; this.y = v.y; this.z = v.z; } public void scale(double s) { this.x = x * s; this.y = y * s; this.z = z * s; } public void add(Tuple3d p) { this.x += p.x; this.y += p.y; this.z += p.z; } public void set(Tuple3d v) { this.x = v.x; this.y = v.y; this.z = v.z; } /** 引数の点との距離を返す */ public double distance(Point3d p) { return Math.sqrt(distanceSquared(p)); } public double distanceSquared(Point3d p) { return (this.x - p.x) * (this.x - p.x) + (this.y - p.y) * (this.y - p.y) + (this.z - p.z) * (this.z - p.z); } }