jp.go.ipa.jgcl
クラス JgclPoint3D

java.lang.Object
  |
  +--jp.go.ipa.jgcl.JgclGeometry
        |
        +--jp.go.ipa.jgcl.JgclPoint
              |
              +--jp.go.ipa.jgcl.JgclPoint3D
すべての実装インタフェース:
java.io.Serializable
直系の既知のサブクラス:
JgclCartesianPoint3D, JgclHomogeneousPoint3D, JgclIntersectionPoint3D, JgclPointOnGeometry3D

public abstract class JgclPoint3D
extends JgclPoint

3次元の点を表す抽象クラス。

バージョン:
$Revision: 1.39 $, $Date: 2000/08/15 08:47:39 $
作成者:
Information-technology Promotion Agency, Japan
関連項目:
JgclVector3D, 直列化された形式

フィールドの概要
static JgclPoint3D origin
          3次元の原点 (0, 0, 0)。
 
コンストラクタの概要
protected JgclPoint3D()
          オブジェクトを構築する。
 
メソッドの概要
 JgclPoint3D add(JgclVector3D vector)
          この点に与えられたベクトルを足した点を返す。
 int dimension()
          次元を返す。
 double distance(JgclPoint3D mate)
          この点と与えられた点との間の距離を返す。
 double distance2(JgclPoint3D mate)
          この点と与えられた点との間の距離の自乗を返す。
 JgclPoint3D divide(double scale)
          この点を与えられたスケールで割った点を返す。
protected abstract  JgclPoint3D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 boolean identical(JgclPoint3D mate)
          2点の同一性を判定する。
 boolean is3D()
          3次元か否かを返す 常に true を返す。
 boolean isOn(JgclParametricCurve3D mate)
          この点が与えられた曲線の上に乗っているかどうかを返す。
 boolean isOn(JgclParametricSurface3D mate)
          この点が与えられた曲面の上に乗っているかどうかを返す。
 JgclPoint3D linearInterpolate(JgclPoint3D mate, double weightForThis)
          この点と与えられた点で線型補間した結果を返す。
 JgclPoint3D longestPoint(JgclPoint3D[] pnts)
          与えられた点列の中で、この点から最も遠い点を返す。
 JgclPoint3D longestPoint(JgclPoint3D[] pnts, int start, int end)
          与えられた点列の指定の範囲の中で、この点から最も遠い点を返す。
 JgclPoint3D midPoint(JgclPoint3D mate)
          この点と与えられた点の中点を返す。
 JgclPoint3D multiply(double scale)
          この点に与えられたスケールを乗じた点を返す。
static JgclCartesianPoint3D of(double[] components)
          JgclCartesianPoint3D のインスタンスを生成する。
static JgclCartesianPoint3D of(double x, double y, double z)
          JgclCartesianPoint3D のインスタンスを生成する。
 JgclPointOnCurve3D[] project(JgclParametricCurve3D mate)
          この点から与えられた曲線への投影点を求める。
static JgclPoint3D[] reverseTransform(JgclPoint3D[] points, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          点列を、与えられた幾何的変換演算子で逆変換する。
 JgclPoint3D reverseTransformBy(JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で逆変換する。
 JgclVector3D subtract(JgclPoint3D mate)
          この点と与えられた点との差を返す。
 JgclPoint3D subtract(JgclVector3D vector)
          この点から与えられたベクトルを引いた点を返す。
 JgclVector3D toVector3D()
          この点を3次元のベクトル (JgclVector3D) に変換する。
static JgclVector3D[] toVector3D(JgclPoint3D[] pnts)
          点の配列をベクトル (JgclVector3D) の配列に変換する。
static JgclPoint3D[] transform(JgclPoint3D[] points, boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          点列を、与えられた幾何的変換演算子で変換する。
static JgclPoint3D[] transform(JgclPoint3D[] points, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          点列を、与えられた幾何的変換演算子で変換する。
 JgclPoint3D transformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 JgclPoint3D transformBy(JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
abstract  double x()
          点の X 座標値を返す抽象メソッド。
abstract  double y()
          点の Y 座標値を返す抽象メソッド。
abstract  double z()
          点の Z 座標値を返す抽象メソッド。
 
クラス jp.go.ipa.jgcl.JgclPoint から継承したメソッド
isPoint
 
クラス jp.go.ipa.jgcl.JgclGeometry から継承したメソッド
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is2D, isCurve, isFreeform, isParametric, isPlacement, isSurface, isTransformationOperator, isVector, makeIndent, output, output
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

origin

public static final JgclPoint3D origin
3次元の原点 (0, 0, 0)。
コンストラクタの詳細

JgclPoint3D

protected JgclPoint3D()
オブジェクトを構築する。
関連項目:
JgclConditionOfOperation
メソッドの詳細

dimension

public int dimension()
次元を返す。

常に 3 を返す。

オーバーライド:
クラス JgclGeometry 内の dimension
戻り値:
3次元なので、常に 3

is3D

public boolean is3D()
3次元か否かを返す

常に true を返す。

オーバーライド:
クラス JgclGeometry 内の is3D
戻り値:
3次元なので、常に true

x

public abstract double x()
点の X 座標値を返す抽象メソッド。
戻り値:
点の X 座標値

y

public abstract double y()
点の Y 座標値を返す抽象メソッド。
戻り値:
点の Y 座標値

z

public abstract double z()
点の Z 座標値を返す抽象メソッド。
戻り値:
点の Z 座標値

add

public JgclPoint3D add(JgclVector3D vector)
この点に与えられたベクトルを足した点を返す。
パラメータ:
vector - 点に足すベクトル
戻り値:
与えられたベクトルを足した点 (this + vector)

subtract

public JgclPoint3D subtract(JgclVector3D vector)
この点から与えられたベクトルを引いた点を返す。
パラメータ:
vector - 点から引くベクトル
戻り値:
与えられたベクトルを引いた点 (this - vector)

subtract

public JgclVector3D subtract(JgclPoint3D mate)
この点と与えられた点との差を返す。
パラメータ:
mate - 差を取る相手の点
戻り値:
二点の差 (this - mate)

multiply

public JgclPoint3D multiply(double scale)
この点に与えられたスケールを乗じた点を返す。
パラメータ:
scale - スケール
戻り値:
(this * scale)

divide

public JgclPoint3D divide(double scale)
この点を与えられたスケールで割った点を返す。
パラメータ:
scale - スケール
戻り値:
(this / scale)

linearInterpolate

public JgclPoint3D linearInterpolate(JgclPoint3D mate,
                                     double weightForThis)
この点と与えられた点で線型補間した結果を返す。
パラメータ:
mate - 線形補間の相手となる点
weightForThis - 自身に対する重み (相手に対する重みは 1 - weightForThis)
戻り値:
線形補間した結果の点 (weightForThis * this + (1 - weightForThis) * mate)

midPoint

public JgclPoint3D midPoint(JgclPoint3D mate)
この点と与えられた点の中点を返す。
パラメータ:
mate - 中点を求める相手となる点
戻り値:
中点 (0.5 * this + 0.5 * mate)

identical

public boolean identical(JgclPoint3D mate)
2点の同一性を判定する。
パラメータ:
mate - 判定の対象となる点
戻り値:
this と mate が「距離の許容誤差」以内で 同一の点であるとみなせれば true、さもなくば false
関連項目:
JgclConditionOfOperation

toVector3D

public JgclVector3D toVector3D()
この点を3次元のベクトル (JgclVector3D) に変換する。
戻り値:
原点からのベクトルとみなしたベクトル

toVector3D

public static JgclVector3D[] toVector3D(JgclPoint3D[] pnts)
点の配列をベクトル (JgclVector3D) の配列に変換する。
戻り値:
原点からのベクトルとみなしたベクトルの配列

project

public JgclPointOnCurve3D[] project(JgclParametricCurve3D mate)
                             throws JgclIndefiniteSolution
この点から与えられた曲線への投影点を求める。
パラメータ:
mate - 投影対象の曲線
戻り値:
指定された曲線への投影点 (存在しないときは長さ0の配列を返す)
例外:
JgclIndefiniteSolution - 解が不定である

isOn

public boolean isOn(JgclParametricCurve3D mate)
この点が与えられた曲線の上に乗っているかどうかを返す。
パラメータ:
mate - 判定対象の曲線
戻り値:
曲線の上に乗っていれば true、そうでなければ false

isOn

public boolean isOn(JgclParametricSurface3D mate)
この点が与えられた曲面の上に乗っているかどうかを返す。
パラメータ:
mate - 判定対象の曲面
戻り値:
曲面の上に乗っていれば true、そうでなければ false

distance

public double distance(JgclPoint3D mate)
この点と与えられた点との間の距離を返す。
パラメータ:
mate - 距離を求める点
戻り値:
this - mate 間の距離

distance2

public double distance2(JgclPoint3D mate)
この点と与えられた点との間の距離の自乗を返す。
パラメータ:
mate - 距離の自乗を求める点
戻り値:
this - mate 間の距離の自乗

longestPoint

public JgclPoint3D longestPoint(JgclPoint3D[] pnts)
与えられた点列の中で、この点から最も遠い点を返す。
パラメータ:
pnts - 点列
戻り値:
最も遠い点

longestPoint

public JgclPoint3D longestPoint(JgclPoint3D[] pnts,
                                int start,
                                int end)
与えられた点列の指定の範囲の中で、この点から最も遠い点を返す。
パラメータ:
pnts - 点列
start - 開始点のインデックス (0 ~ pnts.length - 1)
end - 終了点のインデックス (0 ~ pnts.length - 1, start <= end)
戻り値:
最も遠い点

doTransformBy

protected abstract JgclPoint3D doTransformBy(boolean reverseTransform,
                                             JgclCartesianTransformationOperator3D transformationOperator,
                                             java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。

パラメータ:
reverseTransform - 逆変換するのであれば true、そうでなければ false
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
変換後の幾何要素

transformBy

public JgclPoint3D transformBy(boolean reverseTransform,
                               JgclCartesianTransformationOperator3D transformationOperator,
                               java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。

パラメータ:
reverseTransform - 逆変換するのであれば true、そうでなければ false
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
変換後の幾何要素

transformBy

public JgclPoint3D transformBy(JgclCartesianTransformationOperator3D transformationOperator,
                               java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。

パラメータ:
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
変換後の幾何要素

reverseTransformBy

public JgclPoint3D reverseTransformBy(JgclCartesianTransformationOperator3D transformationOperator,
                                      java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で逆変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で逆変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で逆変換したものを返す。

パラメータ:
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
逆変換後の幾何要素

transform

public static JgclPoint3D[] transform(JgclPoint3D[] points,
                                      boolean reverseTransform,
                                      JgclCartesianTransformationOperator3D transformationOperator,
                                      java.util.Hashtable transformedGeometries)
点列を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

対象となる点が transformedGeometries 内にキーとして存在しない場合には、 それを transformationOperator で変換したものを返す。 この際にメソッド内部では対象となるをキー、 その変換結果を値として transformedGeometries に追加する。

対象となるが transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に対象となる点を transformationOperator で変換したものを返す。

パラメータ:
points - 点列
reverseTransform - 逆変換するのであれば true、そうでなければ false
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル

transform

public static JgclPoint3D[] transform(JgclPoint3D[] points,
                                      JgclCartesianTransformationOperator3D transformationOperator,
                                      java.util.Hashtable transformedGeometries)
点列を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

対象となる点が transformedGeometries 内にキーとして存在しない場合には、 それを transformationOperator で変換したものを返す。 この際にメソッド内部では対象となる点をキー、 その変換結果を値として transformedGeometries に追加する。

対象となるが transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に対象となる点を transformationOperator で変換したものを返す。

パラメータ:
points - 点列
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル

reverseTransform

public static JgclPoint3D[] reverseTransform(JgclPoint3D[] points,
                                             JgclCartesianTransformationOperator3D transformationOperator,
                                             java.util.Hashtable transformedGeometries)
点列を、与えられた幾何的変換演算子で逆変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

対象となる点が transformedGeometries 内にキーとして存在しない場合には、 それを transformationOperator で逆変換したものを返す。 この際にメソッド内部では対象となる点をキー、 その変換結果を値として transformedGeometries に追加する。

対象となるが transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に対象となる点を transformationOperator で逆変換したものを返す。

パラメータ:
points - 点列
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル

of

public static JgclCartesianPoint3D of(double x,
                                      double y,
                                      double z)
JgclCartesianPoint3D のインスタンスを生成する。
パラメータ:
x - X 成分
y - Y 成分
z - Z 成分
戻り値:
JgclCartesianPoint3D のインスタンス

of

public static JgclCartesianPoint3D of(double[] components)
JgclCartesianPoint3D のインスタンスを生成する。
パラメータ:
components - X, Y成分の配列 (要素数 3)
戻り値:
JgclCartesianPoint3D のインスタンス