jp.go.ipa.jgcl
クラス JgclPoint2D

java.lang.Object
  |
  +--jp.go.ipa.jgcl.JgclGeometry
        |
        +--jp.go.ipa.jgcl.JgclPoint
              |
              +--jp.go.ipa.jgcl.JgclPoint2D
すべての実装インタフェース:
java.io.Serializable
直系の既知のサブクラス:
JgclCartesianPoint2D, JgclHomogeneousPoint2D, JgclIntersectionPoint2D, JgclPointOnGeometry2D

public abstract class JgclPoint2D
extends JgclPoint

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

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

フィールドの概要
static JgclPoint2D origin
          2次元の原点 (0, 0)。
 
コンストラクタの概要
protected JgclPoint2D()
          オブジェクトを構築する。
 
メソッドの概要
 JgclPoint2D add(JgclVector2D vector)
          この点に与えられたベクトルを足した点を返す。
 JgclPoint2D center(JgclPoint2D pnt2, JgclPoint2D pnt3)
          三点からの等距離点を求める。
static JgclPoint2D center(JgclPoint2D pnt1, JgclPoint2D pnt2, JgclPoint2D pnt3)
          三点からの等距離点を求める。
 int dimension()
          次元を返す。
 double distance(JgclPoint2D mate)
          この点と与えられた点との間の距離を返す。
 double distance2(JgclPoint2D mate)
          この点と与えられた点との間の距離の自乗を返す。
 JgclPoint2D divide(double scale)
          この点を与えられたスケールで割った点を返す。
protected abstract  JgclPoint2D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 boolean identical(JgclPoint2D mate)
          2点の同一性を判定する。
 boolean is2D()
          2次元か否かを返す 常に true を返す。
 boolean isIn(JgclParametricCurve2D mate)
          この点が「自己干渉しない閉曲線」の内側にあるかどうかを返す。
 boolean isInsideOf(JgclParametricCurve2D mate)
          この点が「自己干渉しない閉曲線」の内側にあるかどうかを返す。
 boolean isOn(JgclParametricCurve2D mate)
          この点が与えられた曲線の上に乗っているかどうかを返す。
 JgclPoint2D linearInterpolate(JgclPoint2D mate, double weightForThis)
          この点と与えられた点で線型補間した結果を返す。
 JgclPoint2D longestPoint(JgclPoint2D[] pnts)
          与えられた点列の中で、この点から最も遠い点を返す。
 JgclPoint2D longestPoint(JgclPoint2D[] pnts, int start, int end)
          与えられた点列の指定の範囲の中で、この点から最も遠い点を返す。
 JgclPoint2D midPoint(JgclPoint2D mate)
          この点と与えられた点の中点を返す。
 JgclPoint2D multiply(double scale)
          この点に与えられたスケールを乗じた点を返す。
static JgclCartesianPoint2D of(double[] components)
          JgclCartesianPoint2D のインスタンスを生成する。
static JgclCartesianPoint2D of(double x, double y)
          JgclCartesianPoint2D のインスタンスを生成する。
 JgclPointOnCurve2D[] project(JgclParametricCurve2D mate)
          この点から与えられた曲線への投影点を求める。
static JgclPoint2D[] reverseTransform(JgclPoint2D[] points, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          点列を、与えられた幾何的変換演算子で逆変換する。
 JgclPoint2D reverseTransformBy(JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で逆変換する。
 JgclVector2D subtract(JgclPoint2D mate)
          この点と与えられた点との差を返す。
 JgclPoint2D subtract(JgclVector2D vector)
          この点から与えられたベクトルを引いた点を返す。
 JgclVector2D toVector2D()
          この点を2次元のベクトル (JgclVector2D) に変換する。
static JgclPoint2D[] transform(JgclPoint2D[] points, boolean reverseTransform, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          点列を、与えられた幾何的変換演算子で変換する。
static JgclPoint2D[] transform(JgclPoint2D[] points, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          点列を、与えられた幾何的変換演算子で変換する。
 JgclPoint2D transformBy(boolean reverseTransform, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 JgclPoint2D transformBy(JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
abstract  double x()
          点の X 座標値を返す抽象メソッド。
abstract  double y()
          点の Y 座標値を返す抽象メソッド。
 
クラス jp.go.ipa.jgcl.JgclPoint から継承したメソッド
isPoint
 
クラス jp.go.ipa.jgcl.JgclGeometry から継承したメソッド
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is3D, 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 JgclPoint2D origin
2次元の原点 (0, 0)。
コンストラクタの詳細

JgclPoint2D

protected JgclPoint2D()
オブジェクトを構築する。
メソッドの詳細

dimension

public int dimension()
次元を返す。

常に 2 を返す。

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

is2D

public boolean is2D()
2次元か否かを返す

常に true を返す。

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

x

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

y

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

add

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

subtract

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

subtract

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

multiply

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

divide

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

linearInterpolate

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

midPoint

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

identical

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

toVector2D

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

project

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

isOn

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

isIn

public boolean isIn(JgclParametricCurve2D mate)
             throws JgclOpenCurve
この点が「自己干渉しない閉曲線」の内側にあるかどうかを返す。

点が曲線に乗っている場合には「内側にある」ものとする。

なお、mate が自己干渉しないことは、呼び出し側で保証する必要がある。

パラメータ:
mate - 判定対象の閉曲線
戻り値:
閉曲線の内側にあれば true、そうでなければ false
例外:
JgclOpenCurve - mate は開いた曲線である

isInsideOf

public boolean isInsideOf(JgclParametricCurve2D mate)
                   throws JgclOpenCurve
この点が「自己干渉しない閉曲線」の内側にあるかどうかを返す。

点が曲線に乗っている場合には「外側にある」ものとする。

なお、mate が自己干渉しないことは、呼び出し側で保証する必要がある。

パラメータ:
mate - 判定対象の閉曲線
戻り値:
閉曲線の内側にあれば true、そうでなければ false
例外:
JgclOpenCurve - mate は開いた曲線である

distance

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

distance2

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

longestPoint

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

longestPoint

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

center

public JgclPoint2D center(JgclPoint2D pnt2,
                          JgclPoint2D pnt3)
三点からの等距離点を求める。

pnt2, pnt3 のいずれかが null の場合には JgclInvalidArgumentValue の例外を発生する。

また、三点が共線状態にある場合にも JgclInvalidArgumentValue の例外を発生する。

パラメータ:
pnt2 - 点2
pnt3 - 点3
戻り値:
this, pnt2, pnt3 からの等距離点

center

public static JgclPoint2D center(JgclPoint2D pnt1,
                                 JgclPoint2D pnt2,
                                 JgclPoint2D pnt3)
三点からの等距離点を求める。

pnt1, pnt2, pnt3 のいずれかが null の場合には JgclInvalidArgumentValue の例外を発生する。

また、三点が共線状態にある場合にも JgclInvalidArgumentValue の例外を発生する。

パラメータ:
pnt1 - 点1
pnt2 - 点2
pnt3 - 点3
戻り値:
三点からの等距離点

doTransformBy

protected abstract JgclPoint2D doTransformBy(boolean reverseTransform,
                                             JgclCartesianTransformationOperator2D 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 JgclPoint2D transformBy(boolean reverseTransform,
                               JgclCartesianTransformationOperator2D 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 JgclPoint2D transformBy(JgclCartesianTransformationOperator2D transformationOperator,
                               java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

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

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

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

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

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

reverseTransformBy

public JgclPoint2D reverseTransformBy(JgclCartesianTransformationOperator2D 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 JgclPoint2D[] transform(JgclPoint2D[] points,
                                      boolean reverseTransform,
                                      JgclCartesianTransformationOperator2D transformationOperator,
                                      java.util.Hashtable transformedGeometries)
点列を、与えられた幾何的変換演算子で変換する。

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

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

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

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

transform

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

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

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

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

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

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

reverseTransform

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

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

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

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

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

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

of

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

of

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