jp.go.ipa.jgcl
クラス JgclVector2D

java.lang.Object
  |
  +--jp.go.ipa.jgcl.JgclGeometry
        |
        +--jp.go.ipa.jgcl.JgclVector
              |
              +--jp.go.ipa.jgcl.JgclVector2D
すべての実装インタフェース:
java.io.Serializable
直系の既知のサブクラス:
JgclHomogeneousVector2D, JgclLiteralVector2D

public abstract class JgclVector2D
extends JgclVector

2次元のベクトルを表す抽象クラス。

バージョン:
$Revision: 1.32 $, $Date: 2000/08/11 06:19:04 $
作成者:
Information-technology Promotion Agency, Japan
関連項目:
JgclPoint2D, 直列化された形式

フィールドの概要
static JgclVector2D xUnitVector
          2次元のグローバルな直交座標系の X 軸方向の単位ベクトル。
static JgclVector2D yUnitVector
          2次元のグローバルな直交座標系の Y 軸方向の単位ベクトル。
static JgclVector2D zeroVector
          2次元のゼロベクトル。
 
コンストラクタの概要
protected JgclVector2D()
          オブジェクトを構築する。
protected JgclVector2D(boolean confirmedAsUnitized)
          オブジェクトを構築する。
 
メソッドの概要
 JgclVector2D add(JgclVector2D mate)
          ベクトル同士の和を返す。
 double angleWith(JgclVector2D mate)
           
 int dimension()
          次元を返す。
 JgclVector2D divide(double scale)
          与えられたスケールで割ったベクトルを返す。
 double dotProduct(JgclVector2D mate)
          内積を返す。
protected abstract  JgclVector2D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          このベクトルを、与えられた幾何的変換演算子で変換する。
 boolean identical(JgclVector2D mate)
          二ベクトルの同一性を判定する。
 boolean identicalDirection(JgclVector2D mate)
          二ベクトルの同一方向性を判定する。
 boolean is2D()
          2次元か否かを返す。
 JgclVector2D multiply(double scale)
          与えられたスケールを乗じたベクトルを返す。
 double norm()
          ベクトルのノルムを返す。
static JgclLiteralVector2D of(double[] components)
          JgclLiteralVector2D のインスタンスを生成する。
static JgclLiteralVector2D of(double x, double y)
          JgclLiteralVector2D のインスタンスを生成する。
 boolean parallelDirection(JgclVector2D mate)
          二ベクトルの同一方向性を判定する。
 JgclVector2D reverse()
          各成分の符号を反転させたベクトルを返す。
 JgclVector2D reverseTransformBy(JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          このベクトルを、与えられた幾何的変換演算子で逆変換する。
 JgclVector2D subtract(JgclVector2D mate)
          ベクトル同士の差を返す。
 double[] toDoubleArray()
          doubleの配列に変換する。
 JgclPoint2D toPoint2D()
          2次元の点 (JgclPoint2D) に変換する。
 JgclVector2D transformBy(boolean reverseTransform, JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          このベクトルを、与えられた幾何的変換演算子で変換する。
 JgclVector2D transformBy(JgclCartesianTransformationOperator2D transformationOperator, java.util.Hashtable transformedGeometries)
          このベクトルを、与えられた幾何的変換演算子で変換する。
 JgclVector2D unitized()
          単位化したベクトルを返す。
 JgclVector2D verticalVector()
          自身に垂直なベクトルを勝手に選んで返す。
abstract  double x()
          ベクトルの X 成分を返す抽象メソッド。
static JgclVector2D xUnitVector()
          2次元のグローバルな直交座標系の X 軸方向の単位ベクトルを返す。
abstract  double y()
          ベクトルの Y 成分を返す抽象メソッド。
static JgclVector2D yUnitVector()
          2次元のグローバルな直交座標系の Y 軸方向の単位ベクトルを返す。
static JgclVector2D zeroVector()
          2次元のゼロベクトルを返す。
 double zOfCrossProduct(JgclVector2D mate)
          外積の Z 成分を返す。
 
クラス jp.go.ipa.jgcl.JgclVector から継承したメソッド
isVector, length, magnitude
 
クラス jp.go.ipa.jgcl.JgclGeometry から継承したメソッド
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is3D, isCurve, isFreeform, isParametric, isPlacement, isPoint, isSurface, isTransformationOperator, makeIndent, output, output
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

zeroVector

public static final JgclVector2D zeroVector
2次元のゼロベクトル。

xUnitVector

public static final JgclVector2D xUnitVector
2次元のグローバルな直交座標系の X 軸方向の単位ベクトル。

yUnitVector

public static final JgclVector2D yUnitVector
2次元のグローバルな直交座標系の Y 軸方向の単位ベクトル。
コンストラクタの詳細

JgclVector2D

protected JgclVector2D()
オブジェクトを構築する。

生成しようとするベクトルが 単位ベクトルであるかどうか分からない場合、もしくは 単位ベクトルでないことが保証されている場合には、 このコンストラクタを使用する。


JgclVector2D

protected JgclVector2D(boolean confirmedAsUnitized)
オブジェクトを構築する。

生成しようとするベクトルが 単位ベクトルであるかどうか分かる場合には、 このコンストラクタを使用する。

パラメータ:
confirmedAsUnitized - 生成しようとするベクトルが 単位ベクトルであるならば true、 さもなくば false
メソッドの詳細

zeroVector

public static JgclVector2D zeroVector()
2次元のゼロベクトルを返す。
戻り値:
2次元のゼロベクトル

xUnitVector

public static JgclVector2D xUnitVector()
2次元のグローバルな直交座標系の X 軸方向の単位ベクトルを返す。
戻り値:
2次元のグローバルな直交座標系の X 軸方向の単位ベクトル

yUnitVector

public static JgclVector2D yUnitVector()
2次元のグローバルな直交座標系の Y 軸方向の単位ベクトルを返す。
戻り値:
2次元のグローバルな直交座標系の Y 軸方向の単位ベクトル

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 成分

unitized

public JgclVector2D unitized()
単位化したベクトルを返す。

長さを持たないベクトルに対してこのメソッドを呼んだ場合、 現実装ではゼロベクトルを返すようになっている。 しかし、本来は例外 JgclZeroLength を投げるべきである。

戻り値:
単位化したベクトル

reverse

public JgclVector2D reverse()
各成分の符号を反転させたベクトルを返す。
戻り値:
this を反転したベクトル

verticalVector

public JgclVector2D verticalVector()
自身に垂直なベクトルを勝手に選んで返す。
戻り値:
this に垂直なベクトル

dotProduct

public double dotProduct(JgclVector2D mate)
内積を返す。
パラメータ:
mate - 内積を取る相手のベクトル
戻り値:
内積

zOfCrossProduct

public double zOfCrossProduct(JgclVector2D mate)
外積の Z 成分を返す。
パラメータ:
mate - 外積を取る相手のベクトル
戻り値:
mate との外積の Z 成分

add

public JgclVector2D add(JgclVector2D mate)
ベクトル同士の和を返す。
パラメータ:
mate - 和を取る相手のベクトル
戻り値:
ベクトルの和 (this + mate)

subtract

public JgclVector2D subtract(JgclVector2D mate)
ベクトル同士の差を返す。
パラメータ:
mate - 差を取る相手のベクトル
戻り値:
ベクトルの差 (this - mate)

multiply

public JgclVector2D multiply(double scale)
与えられたスケールを乗じたベクトルを返す。
パラメータ:
scale - スケール
戻り値:
(this * scale)

divide

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

identical

public boolean identical(JgclVector2D mate)
二ベクトルの同一性を判定する。

二つのベクトルの差の大きさが、 現在設定されている演算条件の「距離の許容誤差」より小さければ、 二つのベクトルは同一であるものと判断する。

パラメータ:
mate - 判定の対象となるベクトル
戻り値:
二つのベクトルが同一のベクトルであるとみなせれば true、さもなくば false
関連項目:
JgclConditionOfOperation, identicalDirection(JgclVector2D)

identicalDirection

public boolean identicalDirection(JgclVector2D mate)
二ベクトルの同一方向性を判定する。

二つのベクトルのなす角度が、 現在設定されている演算条件の「角度の許容誤差」より小さければ、 二つのベクトルは同一方向であるものと判断する。

なお、反転状態は同一とみなさない。

パラメータ:
mate - 判定の対象となるベクトル
戻り値:
二つのベクトルが同一方向のベクトルとみなせれば true、さもなくば false
関連項目:
JgclConditionOfOperation, identical(JgclVector2D), parallelDirection(JgclVector2D)

parallelDirection

public boolean parallelDirection(JgclVector2D mate)
二ベクトルの同一方向性を判定する。

二つのベクトルのなす角度が、 現在設定されている演算条件の「角度の許容誤差」より小さければ、 二つのベクトルは同一方向であるものと判断する。

なお、反転状態も同一とみなす。

パラメータ:
mate - 判定の対象となるベクトル
戻り値:
二つのベクトルが同一方向のベクトルとみなせれば true、さもなくば false
関連項目:
JgclConditionOfOperation, identicalDirection(JgclVector2D)

norm

public double norm()
ベクトルのノルムを返す。
オーバーライド:
クラス JgclVector 内の norm
戻り値:
ベクトルのノルム (x^2) + (y^2)

toPoint2D

public JgclPoint2D toPoint2D()
2次元の点 (JgclPoint2D) に変換する。
戻り値:
原点からの位置ベクトルとみなした点

toDoubleArray

public double[] toDoubleArray()
doubleの配列に変換する。
戻り値:
成分値を代入したdoubleの配列

angleWith

public double angleWith(JgclVector2D mate)

doTransformBy

protected abstract JgclVector2D 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 JgclVector2D 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 JgclVector2D 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 JgclVector2D reverseTransformBy(JgclCartesianTransformationOperator2D transformationOperator,
                                       java.util.Hashtable transformedGeometries)
このベクトルを、与えられた幾何的変換演算子で逆変換する。

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

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

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

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

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

of

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

of

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