JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
クラス Line2D

java.lang.Object
  上位を拡張 java.awt.geom.Line2D
すべての実装されたインタフェース:
Shape, Cloneable
直系の既知のサブクラス:
Line2D.Double, Line2D.Float

public abstract class Line2D
extends Object
implements Shape, Cloneable

Line2D は、(x, y) 座標空間の線分を表します。このクラスは、すべての Java 2D API と同じように、「ユーザ空間」というデフォルトの座標体系を使用します。この座標体系では、y 軸の値は下方へ行くに従い増加し、x 軸の値は右へ行くに従い増加します。ユーザ空間座標系についての詳細は、「Java 2D Programmer's Guide」の「Coordinate Systems」のセクションを参照してください。

このクラスは、2D 線分を格納するすべてのオブジェクトの抽象スーパークラスであり、座標の実際の記憶域表現は、サブクラスに委ねられます。


入れ子のクラスの概要
static class Line2D.Double
          double 座標で指定された線分です。
static class Line2D.Float
          float 座標で指定された線分です。
 
コンストラクタの概要
protected Line2D()
          これは、インスタンスを直接には生成できない抽象クラスです。
 
メソッドの概要
 Object clone()
          このオブジェクトと同じクラスの新しいオブジェクトを作成します。
 boolean contains(double x, double y)
          指定された座標が、この Line2D の境界内にあるかどうかを判定します。
 boolean contains(double x, double y, double w, double h)
          この Line2D の内部が、指定された矩形座標セットを完全に内包するかどうかを判定します。
 boolean contains(Point2D p)
          指定された Point2D が、この Line2D の境界内にあるかどうかを判定します。
 boolean contains(Rectangle2D r)
          この Line2D の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。
 Rectangle getBounds()
          この Line2D のバウンディングボックスを返します。
abstract  Point2D getP1()
          この Line2D の始点を表す Point2D を返します。
abstract  Point2D getP2()
          この Line2D の終点を表す Point2D を返します。
 PathIterator getPathIterator(AffineTransform at)
          この Line2D の境界を定義する繰り返しオブジェクトを返します。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          平坦化された Line2D の境界を定義する繰り返しオブジェクトを返します。
abstract  double getX1()
          始点の X 座標を倍精度で返します。
abstract  double getX2()
          終点の X 座標を倍精度で返します。
abstract  double getY1()
          始点の Y 座標を倍精度で返します。
abstract  double getY2()
          終点の Y 座標を倍精度で返します。
 boolean intersects(double x, double y, double w, double h)
          この Line2D が、指定された矩形座標セットの内部と交差するかどうかを判定します。
 boolean intersects(Rectangle2D r)
          この Line2D が、指定された Rectangle2D の内部と交差するかどうかを判定します。
 boolean intersectsLine(double X1, double Y1, double X2, double Y2)
          (X1, Y1) から (X2, Y2) までの線分がこの線分と交差するかどうかを判定します。
 boolean intersectsLine(Line2D l)
          指定された線分がこの線分と交差するかどうかを判定します。
static boolean linesIntersect(double X1, double Y1, double X2, double Y2, double X3, double Y3, double X4, double Y4)
          (X1, Y1) から (X2, Y2) までの線分が (X3, Y3) から (X4, Y4) までの線分と交差するかどうかを判定します。
 double ptLineDist(double PX, double PY)
          点からこの線までの距離を返します。
static double ptLineDist(double X1, double Y1, double X2, double Y2, double PX, double PY)
          点から線までの距離を返します。
 double ptLineDist(Point2D pt)
          Point2D 点からこの線までの距離を返します。
 double ptLineDistSq(double PX, double PY)
          点からこの線までの距離の 2 乗を返します。
static double ptLineDistSq(double X1, double Y1, double X2, double Y2, double PX, double PY)
          点から線までの距離の 2 乗を返します。
 double ptLineDistSq(Point2D pt)
          指定された Point2D からこの線までの距離の 2 乗を返します。
 double ptSegDist(double PX, double PY)
          点からこの線分までの距離を返します。
static double ptSegDist(double X1, double Y1, double X2, double Y2, double PX, double PY)
          点から線分までの距離を返します。
 double ptSegDist(Point2D pt)
          Point2D からこの線分までの距離を返します。
 double ptSegDistSq(double PX, double PY)
          点からこの線分までの距離の 2 乗を返します。
static double ptSegDistSq(double X1, double Y1, double X2, double Y2, double PX, double PY)
          点から線分までの距離の 2 乗を返します。
 double ptSegDistSq(Point2D pt)
          Point2D からこの線分までの距離の 2 乗を返します。
 int relativeCCW(double PX, double PY)
          この線分を基準として、指定された点 (PX, PY) の位置を示すインジケータを返します。
static int relativeCCW(double X1, double Y1, double X2, double Y2, double PX, double PY)
          (X1, Y1) から (X2, Y2) までの線分を基準にして、指定された点 (PX, PY) の位置を示すインジケータを返します。
 int relativeCCW(Point2D p)
          この線分を基準として、指定された Point2D の位置を示すインジケータを返します。
abstract  void setLine(double X1, double Y1, double X2, double Y2)
          この Line2D の両方の端点の位置を、指定された double 座標に設定します。
 void setLine(Line2D l)
          この Line2D の両方の端点の位置を、指定された Line2D の両方の端点の位置と同じになるように設定します。
 void setLine(Point2D p1, Point2D p2)
          この Line2D の両方の端点の位置を、指定された Point2D 座標に設定します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース java.awt.Shape から継承されたメソッド
getBounds2D
 

コンストラクタの詳細

Line2D

protected Line2D()
これは、インスタンスを直接には生成できない抽象クラスです。インスタンス生成のためには型固有の実装サブクラスが用意されており、これらのサブクラスにより、下記の各種アクセサリメソッドに必要な情報を格納するための形式が多数提供されます。

関連項目:
Line2D.Float, Line2D.Double
メソッドの詳細

getX1

public abstract double getX1()
始点の X 座標を倍精度で返します。

戻り値:
この Line2D オブジェクトの始点の X 座標

getY1

public abstract double getY1()
始点の Y 座標を倍精度で返します。

戻り値:
この Line2D オブジェクトの始点の Y 座標

getP1

public abstract Point2D getP1()
この Line2D の始点を表す Point2D を返します。

戻り値:
Line2D の始点を表す Point2D

getX2

public abstract double getX2()
終点の X 座標を倍精度で返します。

戻り値:
この Line2D オブジェクトの始点の X 座標

getY2

public abstract double getY2()
終点の Y 座標を倍精度で返します。

戻り値:
この Line2D オブジェクトの始点の Y 座標

getP2

public abstract Point2D getP2()
この Line2D の終点を表す Point2D を返します。

戻り値:
この Line2D の終点を表す Point2D

setLine

public abstract void setLine(double X1,
                             double Y1,
                             double X2,
                             double Y2)
この Line2D の両方の端点の位置を、指定された double 座標に設定します。

パラメータ:
X1, Y1 - 最初に指定された座標
X2, Y2 - 2 番目に指定された座標

setLine

public void setLine(Point2D p1,
                    Point2D p2)
この Line2D の両方の端点の位置を、指定された Point2D 座標に設定します。

パラメータ:
p1, p2 - 指定された Point2D オブジェクト

setLine

public void setLine(Line2D l)
この Line2D の両方の端点の位置を、指定された Line2D の両方の端点の位置と同じになるように設定します。

パラメータ:
l - 指定された Line2D

relativeCCW

public static int relativeCCW(double X1,
                              double Y1,
                              double X2,
                              double Y2,
                              double PX,
                              double PY)
(X1, Y1) から (X2, Y2) までの線分を基準にして、指定された点 (PX, PY) の位置を示すインジケータを返します。戻り値は 1、-1、0 のどれかで、指定された線が最初の端点 (X1, Y1) を基準にしてどの方向に回転すれば指定された点 (PX, PY) をポイントするかを示します。

戻り値が 1 の場合、正の X 軸を負の Y 軸に向けて移動する方向に線分を回転することを示します。Java 2D で使用されるデフォルトの座標体系では、これは反時計方向になります。

戻り値が -1 の場合、正の X 軸を正の Y 軸に向けて移動する方向に線分を回転することを示します。Java 2D で使用されるデフォルトの座標体系では、これは時計方向になります。

戻り値が 0 の場合、点が正確に線分上にあることを示します。インジケータ値が 0 になることはまれであり、浮動小数点の丸めの問題により共線性の判断には利用できません。

点が線分の端点の間ではなく延長上にある場合、点が (X1, Y1) の外側のときは -1、(X2, Y2) の外側のときは 1 になります。

パラメータ:
X1, Y1 - 指定された線分の先頭の座標
X2, Y2 - 指定された線分の終点の座標
PX, PY - 指定された線分と比較する点の座標
戻り値:
先に指定された 2 つの座標で形成される線分を基準にして、3 番目に指定された座標の位置を示す整数

relativeCCW

public int relativeCCW(double PX,
                       double PY)
この線分を基準として、指定された点 (PX, PY) の位置を示すインジケータを返します。戻り値の解釈については、relativeCCW(double, double, double, double, double, double) のメソッドのコメントを参照してください。

パラメータ:
PX, PY - 現在の線分と比較される、指定された点の座標
戻り値:
現在の線分を基準に、指定された座標の位置を示す整数
関連項目:
relativeCCW(double, double, double, double, double, double)

relativeCCW

public int relativeCCW(Point2D p)
この線分を基準として、指定された Point2D の位置を示すインジケータを返します。戻り値の解釈については、relativeCCW(double, double, double, double, double, double) のメソッドのコメントを参照してください。

パラメータ:
p - 現在の線分と比較される、指定された Point2D
戻り値:
現在の線分を基準に、Point2D の位置を示す整数
関連項目:
relativeCCW(double, double, double, double, double, double)

linesIntersect

public static boolean linesIntersect(double X1,
                                     double Y1,
                                     double X2,
                                     double Y2,
                                     double X3,
                                     double Y3,
                                     double X4,
                                     double Y4)
(X1, Y1) から (X2, Y2) までの線分が (X3, Y3) から (X4, Y4) までの線分と交差するかどうかを判定します。

パラメータ:
X1, Y1 - 最初に指定された線分の先頭の座標
X2, Y2 - 最初に指定された線分の終点の座標
X3, Y3 - 2 番目に指定された線分の先頭の座標
X4, Y4 - 2 番目に指定された線分の終点の座標
戻り値:
最初の線分と 2 番目の線分が交差する場合は true、そうでない場合は false

intersectsLine

public boolean intersectsLine(double X1,
                              double Y1,
                              double X2,
                              double Y2)
(X1, Y1) から (X2, Y2) までの線分がこの線分と交差するかどうかを判定します。

パラメータ:
X1, Y1 - 指定された線分の先頭の座標
X2, Y2 - 指定された線分の終点の座標
戻り値:
この線分が指定された線分と交差する場合は true、そうでない場合は false

intersectsLine

public boolean intersectsLine(Line2D l)
指定された線分がこの線分と交差するかどうかを判定します。

パラメータ:
l - 指定された Line2D
戻り値:
この線分が指定された線分と交差する場合は true、そうでない場合は false

ptSegDistSq

public static double ptSegDistSq(double X1,
                                 double Y1,
                                 double X2,
                                 double Y2,
                                 double PX,
                                 double PY)
点から線分までの距離の 2 乗を返します。この距離は、指定された点と、指定された端点の間でもっとも近い点の間の距離です。指定された点が端点の間の線分と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
X1, Y1 - 指定された線分の先頭の座標
X2, Y2 - 指定された線分の終点の座標
PX, PY - 指定された線分に対して測定される点の座標
戻り値:
指定された点から指定された線分までの距離の 2 乗を示す double 値
関連項目:
ptLineDistSq(double, double, double, double, double, double)

ptSegDist

public static double ptSegDist(double X1,
                               double Y1,
                               double X2,
                               double Y2,
                               double PX,
                               double PY)
点から線分までの距離を返します。この距離は、指定された点と、指定された端点の間でもっとも近い点との間の距離です。指定された点が端点の間の線分と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
X1, Y1 - 指定された線分の先頭の座標
X2, Y2 - 指定された線分の終点の座標
PX, PY - 指定された線分に対して測定される点の座標
戻り値:
指定された点から指定された線分までの距離を示す double 値
関連項目:
ptLineDist(double, double, double, double, double, double)

ptSegDistSq

public double ptSegDistSq(double PX,
                          double PY)
点からこの線分までの距離の 2 乗を返します。この距離は、指定された点と、現在の線の端点の間でもっとも近い点の間の距離です。指定された点が端点の間の線分と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
PX, PY - この線分に対して測定される点の座標
戻り値:
指定された点から現在の線分までの距離の 2 乗を示す double 値
関連項目:
ptLineDistSq(double, double)

ptSegDistSq

public double ptSegDistSq(Point2D pt)
Point2D からこの線分までの距離の 2 乗を返します。この距離は、指定された点と、現在の線の端点の間でもっとも近い点の間の距離です。指定された点が端点の間の線分と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
pt - この線分に対して測定される Point2D
戻り値:
指定された Point2D から現在の線分までの距離の 2 乗を示す double 値
関連項目:
ptLineDistSq(Point2D)

ptSegDist

public double ptSegDist(double PX,
                        double PY)
点からこの線分までの距離を返します。この距離は、指定された点と、現在の線の端点の間でもっとも近い点の間の距離です。指定された点が端点の間の線分と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
PX, PY - この線分に対して測定される点の座標
戻り値:
指定された点から現在の線分までの距離を示す double 値
関連項目:
ptLineDist(double, double)

ptSegDist

public double ptSegDist(Point2D pt)
Point2D からこの線分までの距離を返します。この距離は、指定された点と、現在の線の端点の間でもっとも近い点の間の距離です。指定された点が端点の間の線分と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
pt - この線分に対して測定される Point2D
戻り値:
指定された Point2D から現在の線分までの距離を示す double 値
関連項目:
ptLineDist(Point2D)

ptLineDistSq

public static double ptLineDistSq(double X1,
                                  double Y1,
                                  double X2,
                                  double Y2,
                                  double PX,
                                  double PY)
点から線までの距離の 2 乗を返します。この距離は、指定された点と、指定された座標によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
X1, Y1 - 指定された線上の 1 つの点の座標
X2, Y2 - 指定された線上のもう 1 つの点の座標
PX, PY - 指定された線に対して測定される点の座標
戻り値:
指定された点から指定された線までの距離の 2 乗を示す double 値
関連項目:
ptSegDistSq(double, double, double, double, double, double)

ptLineDist

public static double ptLineDist(double X1,
                                double Y1,
                                double X2,
                                double Y2,
                                double PX,
                                double PY)
点から線までの距離を返します。この距離は、指定された点と、指定された座標によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
X1, Y1 - 指定された線上の 1 つの点の座標
X2, Y2 - 指定された線上のもう 1 つの点の座標
PX, PY - 指定された線に対して測定される点の座標
戻り値:
指定された点から指定された線までの距離を示す double 値
関連項目:
ptSegDist(double, double, double, double, double, double)

ptLineDistSq

public double ptLineDistSq(double PX,
                           double PY)
点からこの線までの距離の 2 乗を返します。この距離は、指定された点と、この Line2D によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
PX, PY - この線に対して測定される点の座標
戻り値:
指定された点から現在の線までの距離の 2 乗を示す double 値
関連項目:
ptSegDistSq(double, double)

ptLineDistSq

public double ptLineDistSq(Point2D pt)
指定された Point2D からこの線までの距離の 2 乗を返します。この距離は、指定された点と、この Line2D によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線上と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
pt - この線に対して測定される Point2D
戻り値:
指定された Point2D から現在の線までの距離の 2 乗を示す double 値
関連項目:
ptSegDistSq(Point2D)

ptLineDist

public double ptLineDist(double PX,
                         double PY)
点からこの線までの距離を返します。この距離は、指定された点と、この Line2D によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
PX, PY - この線に対して測定される点の座標
戻り値:
指定された点から現在の線までの距離を示す double 値
関連項目:
ptSegDist(double, double)

ptLineDist

public double ptLineDist(Point2D pt)
Point2D 点からこの線までの距離を返します。この距離は、指定された点と、この Line2D によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは 0.0 を返します。

パラメータ:
pt - 測定される Point2D
戻り値:
指定された Point2D から現在の線までの距離を示す double 値
関連項目:
ptSegDist(Point2D)

contains

public boolean contains(double x,
                        double y)
指定された座標が、この Line2D の境界内にあるかどうかを判定します。このメソッドでは Shape インタフェースを実装する必要があります。ただし Line2D オブジェクトの場合、線が領域を持つことはないため、このメソッドは常に false を返します。

定義:
インタフェース Shape 内の contains
パラメータ:
x, y - 指定された点の座標
戻り値:
falseLine2D が領域を持つことはないため

contains

public boolean contains(Point2D p)
指定された Point2D が、この Line2D の境界内にあるかどうかを判定します。このメソッドでは Shape インタフェースを実装する必要があります。ただし、Line2D オブジェクトの場合、線が領域を持つことはないため、このメソッドは常に false を返します。

定義:
インタフェース Shape 内の contains
パラメータ:
p - 判定対象の、指定された Point2D
戻り値:
falseLine2D が領域を持つことはないため

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
この Line2D が、指定された矩形座標セットの内部と交差するかどうかを判定します。

定義:
インタフェース Shape 内の intersects
パラメータ:
x, y - 指定された矩形領域の左上隅の座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
この Line2D が指定された矩形座標セットの内部と交差する場合は true、そうでない場合は false
関連項目:
Area

intersects

public boolean intersects(Rectangle2D r)
この Line2D が、指定された Rectangle2D の内部と交差するかどうかを判定します。

定義:
インタフェース Shape 内の intersects
パラメータ:
r - 判定対象の、指定された Rectangle2D
戻り値:
この Line2D が指定された Rectangle2D の内部と交差する場合は true、そうでない場合は false
関連項目:
Shape.intersects(double, double, double, double)

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
この Line2D の内部が、指定された矩形座標セットを完全に内包するかどうかを判定します。このメソッドでは Shape インタフェースを実装する必要があります。ただし、Line2D オブジェクトの場合、線が領域を持つことはないため、このメソッドは常に false を返します。

定義:
インタフェース Shape 内の contains
パラメータ:
x, y - 指定された矩形領域の左上隅の座標
w - 指定された矩形領域の幅
h - 指定された矩形領域の高さ
戻り値:
falseLine2D が領域を持つことはないため
関連項目:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
この Line2D の内部が、指定された Rectangle2D を完全に内包するかどうかを判定します。このメソッドでは Shape インタフェースを実装する必要があります。ただし、Line2D オブジェクトの場合、線が領域を持つことはないため、このメソッドは常に false を返します。

定義:
インタフェース Shape 内の contains
パラメータ:
r - 判定対象の、指定された Rectangle2D
戻り値:
falseLine2D が領域を持つことはないため
関連項目:
Shape.contains(double, double, double, double)

getBounds

public Rectangle getBounds()
この Line2D のバウンディングボックスを返します。

定義:
インタフェース Shape 内の getBounds
戻り値:
Line2D のバウンディングボックスである Rectangle
関連項目:
Shape.getBounds2D()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
この Line2D の境界を定義する繰り返しオブジェクトを返します。このクラスの反復子は、マルチスレッドに対して安全ではありません。つまりこの Line2D クラスでは、この Line2D オブジェクトのジオメトリを変更すると、このジオメトリについてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 指定された AffineTransform
戻り値:
この Line2D の境界を定義する PathIterator

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
平坦化された Line2D の境界を定義する繰り返しオブジェクトを返します。このクラスの反復子は、マルチスレッドに対して安全ではありません。つまりこの Line2D クラスでは、この Line2D オブジェクトのジオメトリを変更すると、このジオメトリについてすでに進行中の繰り返し処理に影響を及ぼす場合があります。

定義:
インタフェース Shape 内の getPathIterator
パラメータ:
at - 指定された AffineTransform
flatness - 指定された曲線上の制御点を動かしたとき、分割された曲線が端点を結ぶ直線により置換されない条件で、制御点がこの直線からもっとも離れる距離。Line2D オブジェクトは常に平坦であるため、このパラメータは無視される
戻り値:
平坦化された Line2D の境界を定義する PathIterator

clone

public Object clone()
このオブジェクトと同じクラスの新しいオブジェクトを作成します。

オーバーライド:
クラス Object 内の clone
戻り値:
このインスタンスの複製
例外:
OutOfMemoryError - 十分なメモリがない場合
導入されたバージョン:
1.2
関連項目:
Cloneable

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。