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()
Shape を完全に囲む整数のRectangle を返します。 |
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)
Shape の内部が指定された矩形領域の内部と交差しているかどうかをテストします。 |
boolean |
intersects(Rectangle2D r)
Shape の内部が指定された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 座標に設定します。 |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getBounds2D
protected Line2D()
Line2D.Float
、Line2D.Double
public abstract double getX1()
Line2D
オブジェクトの始点のX座標。public abstract double getY1()
Line2D
オブジェクトの始点のY座標。public abstract Point2D getP1()
Line2D
の始点Point2D
を返します。Line2D
の始点Point2D
。public abstract double getX2()
Line2D
オブジェクトの終点のX座標。public abstract double getY2()
Line2D
オブジェクトの終点のY座標。public abstract Point2D getP2()
Line2D
の終点Point2D
を返します。Line2D
の終点Point2D
。public abstract void setLine(double x1, double y1, double x2, double y2)
Line2D
の両方の終点の位置を、指定されたdouble座標に設定します。x1
- 始点のX座標y1
- 始点のY座標x2
- 終点のX座標y2
- 終点のY座標public void setLine(Point2D p1, Point2D p2)
Line2D
の両方の終点の位置を、指定されたPoint2D
座標に設定します。p1
- ライン・セグメントの始点Point2D
p2
- ライン・セグメントの終点Point2D
public void setLine(Line2D l)
Line2D
の両方の終点の位置を、指定されたLine2D
の終点と同じ位置に設定します。l
- 指定されたLine2D
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のいずれかであり、指定された線が指定された点(px,py)
をポイントするには、最初の終点(x1,y1)
を基準にしてどの方向に回転する必要があるかを示します。
戻り値が1の場合、正のX軸を負のY軸に向けて移動する方向にライン・セグメントを回転することを示します。Java 2Dで使用されるデフォルトの座標体系では、これは反時計方向になります。
戻り値が -1の場合、正のX軸を正のY軸に向けて移動する方向にライン・セグメントを回転することを示します。デフォルトの座標体系では、これは時計方向になります。
戻り値が0の場合、点が正確にライン・セグメント上にあることを示します。インジケータ値が0になることはまれであり、浮動小数点の丸めの問題により共線性の判断には利用できません。
点がライン・セグメントの終点の間ではなく延長上にある場合、値は、点が「(x1,y1)
の外側」にある場合は -1に、点が「(x2,y2)
の外側」にある場合は1になります。
x1
- 指定されたライン・セグメントの始点のX座標y1
- 指定されたライン・セグメントの始点のY座標x2
- 指定されたライン・セグメントの終点のX座標y2
- 指定されたライン・セグメントの終点のY座標px
- 指定されたライン・セグメントと比較される、指定された点のX座標py
- 指定されたライン・セグメントと比較される、指定された点のY座標public int relativeCCW(double px, double py)
(px,py)
の位置を示すインジケータを返します。戻り値の解釈については、relativeCCW(double, double, double, double, double, double)
のメソッドのコメントを参照してください。px
- このLine2D
と比較される、指定された点のX座標py
- このLine2D
と比較される、指定された点のY座標Line2D
を基準にした、指定された座標の位置を示す整数relativeCCW(double, double, double, double, double, double)
public int relativeCCW(Point2D p)
Point2D
の位置を示すインジケータを返します。戻り値の解釈については、relativeCCW(double, double, double, double, double, double)
のメソッドのコメントを参照してください。p
- このLine2D
と比較される、指定されたPoint2D
Line2D
を基準にした、指定されたPoint2D
の位置を示す整数relativeCCW(double, double, double, double, double, double)
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
- 最初に指定されたライン・セグメントの始点のX座標y1
- 最初に指定されたライン・セグメントの始点のY座標x2
- 最初に指定されたライン・セグメントの終点のX座標y2
- 最初に指定されたライン・セグメントの終点のY座標x3
- 2番目に指定されたライン・セグメントの始点のX座標y3
- 2番目に指定されたライン・セグメントの始点のY座標x4
- 2番目に指定されたライン・セグメントの終点のX座標y4
- 2番目に指定されたライン・セグメントの終点のY座標true
、それ以外の場合はfalse
。public boolean intersectsLine(double x1, double y1, double x2, double y2)
(x1,y1)
から(x2,y2)
のライン・セグメントがこのライン・セグメントと交差するかどうかを判定します。x1
- 指定されたライン・セグメントの始点のX座標y1
- 指定されたライン・セグメントの始点のY座標x2
- 指定されたライン・セグメントの終点のX座標y2
- 指定されたライン・セグメントの終点のY座標<true>
、それ以外の場合はfalse
。public boolean intersectsLine(Line2D l)
l
- 指定されたLine2D
true
、それ以外の場合はfalse
。public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定されたライン・セグメントの始点のX座標y1
- 指定されたライン・セグメントの始点のY座標x2
- 指定されたライン・セグメントの終点のX座標y2
- 指定されたライン・セグメントの終点のY座標px
- 指定されたライン・セグメントに対して測定される、指定された点のX座標py
- 指定されたライン・セグメントに対して測定される、指定された点のY座標ptLineDistSq(double, double, double, double, double, double)
public static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定されたライン・セグメントの始点のX座標y1
- 指定されたライン・セグメントの始点のY座標x2
- 指定されたライン・セグメントの終点のX座標y2
- 指定されたライン・セグメントの終点のY座標px
- 指定されたライン・セグメントに対して測定される、指定された点のX座標py
- 指定されたライン・セグメントに対して測定される、指定された点のY座標ptLineDist(double, double, double, double, double, double)
public double ptSegDistSq(double px, double py)
px
- このライン・セグメントに対して測定される、指定された点のX座標py
- このライン・セグメントに対して測定される、指定された点のY座標ptLineDistSq(double, double)
public double ptSegDistSq(Point2D pt)
Point2D
からこのライン・セグメントまでの距離の2乗を返します。この距離は、指定された点と、現在の線の終点の間でもっとも近い点の間の距離です。指定された点が終点の間のライン・セグメントと交差する場合、このメソッドは0.0を返します。pt
- このライン・セグメントに対して測定される、指定されたPoint2D
。Point2D
から現在のライン・セグメントまでの距離の2乗であるdouble値。ptLineDistSq(Point2D)
public double ptSegDist(double px, double py)
px
- このライン・セグメントに対して測定される、指定された点のX座標py
- このライン・セグメントに対して測定される、指定された点のY座標ptLineDist(double, double)
public double ptSegDist(Point2D pt)
Point2D
からこのライン・セグメントまでの距離を返します。この距離は、指定された点と、現在の線の終点の間でもっとも近い点の間の距離です。指定された点が終点の間のライン・セグメントと交差する場合、このメソッドは0.0を返します。pt
- このライン・セグメントに対して測定される、指定されたPoint2D
Point2D
から現在のライン・セグメントまでの距離であるdouble値。ptLineDist(Point2D)
public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定されたラインの始点のX座標y1
- 指定されたラインの始点のY座標x2
- 指定されたラインの終点のX座標y2
- 指定されたラインの終点のY座標px
- 指定されたラインに対して測定される、指定された点のX座標py
- 指定されたラインに対して測定される、指定された点のY座標ptSegDistSq(double, double, double, double, double, double)
public static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定されたラインの始点のX座標y1
- 指定されたラインの始点のY座標x2
- 指定されたラインの終点のX座標y2
- 指定されたラインの終点のY座標px
- 指定されたラインに対して測定される、指定された点のX座標py
- 指定されたラインに対して測定される、指定された点のY座標ptSegDist(double, double, double, double, double, double)
public double ptLineDistSq(double px, double py)
Line2D
によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは0.0を返します。px
- このラインに対して測定される、指定された点のX座標py
- このラインに対して測定される、指定された点のY座標ptSegDistSq(double, double)
public double ptLineDistSq(Point2D pt)
Point2D
からこのラインまでの距離の2乗を返します。この距離は、指定された点と、このLine2D
によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは0.0を返します。pt
- このラインに対して測定される、指定されたPoint2D
Point2D
から現在のラインまでの距離の2乗であるdouble値。ptSegDistSq(Point2D)
public double ptLineDist(double px, double py)
Line2D
によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは0.0を返します。px
- このラインに対して測定される、指定された点のX座標py
- このラインに対して測定される、指定された点のY座標ptSegDist(double, double)
public double ptLineDist(Point2D pt)
Point2D
からこのラインまでの距離を返します。この距離は、指定された点と、このLine2D
によって定義される無限に延長された線上のもっとも近い点の間の距離です。指定された点が線と交差する場合、このメソッドは0.0を返します。pt
- 測定される指定されたPoint2D
Point2D
から現在のラインまでの距離であるdouble値。ptSegDist(Point2D)
public boolean contains(double x, double y)
Line2D
の境界内にあるかどうかを判定します。このメソッドはShape
インタフェースを実装する必要がありますが、線には領域が含まれないため、Line2D
オブジェクトの場合は常にfalse
を返します。public boolean contains(Point2D p)
Point2D
が、このLine2D
の境界内にあるかどうかを判定します。このメソッドはShape
インタフェースを実装する必要がありますが、線には領域が含まれないため、Line2D
オブジェクトの場合は常にfalse
を返します。public boolean intersects(double x, double y, double w, double h)
Shape
の内部が指定された矩形領域の内部と交差しているかどうかをテストします。Shape
の内部と指定された矩形領域の両方に含まれている点が存在する場合、その矩形領域はShape
と交差していると見なされます。
Shape.intersects()
メソッドを使用すると、次のような場合に、Shape
実装は内部的にtrue
を返すことができます。
Shape
が交差している可能性が高いが、
Shapes
によっては、矩形領域がShape
と交差していない場合でもこのメソッドがtrue
を返すことがあります。Area
クラスは、ほとんどのShape
オブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。intersects
、インタフェース: Shape
x
- 指定された矩形領域の左上隅のX座標y
- 指定された矩形領域の左上隅のY座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さShape
の内部と矩形領域の内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue
、それ以外の場合はfalse
。Area
public boolean intersects(Rectangle2D r)
Shape
の内部が指定されたRectangle2D
の内部と交差しているかどうかをテストします。Shape.intersects()
メソッドを使用すると、次のような場合に、Shape
実装は内部的にtrue
を返すことができます。
Rectangle2D
とShape
が交差している可能性が高いが、
Shapes
によっては、Rectangle2D
がShape
と交差していない場合でもこのメソッドがtrue
を返すことがあります。Area
クラスは、ほとんどのShape
オブジェクトより正確な、幾何学的な共通部分の計算を実行するため、より的確な答えが必要な場合に使用できます。intersects
、インタフェース: Shape
r
- 指定されたRectangle2D
Shape
の内部と指定されたRectangle2D
の内部が交差しているか、またはどちらも交差している可能性が高いが、負荷が大きすぎて共通部分の計算を実行できない場合はtrue
、それ以外の場合はfalse
。Shape.intersects(double, double, double, double)
public boolean contains(double x, double y, double w, double h)
Line2D
の内部が、指定された矩形座標セットを完全に内包するかどうかを判定します。このメソッドはShape
インタフェースを実装する必要がありますが、線には領域が含まれないため、Line2D
オブジェクトの場合は常にfalseを返します。contains
、インタフェース: Shape
x
- 指定された矩形領域の左上隅のX座標y
- 指定された矩形領域の左上隅のY座標w
- 指定された矩形領域の幅h
- 指定された矩形領域の高さLine2D
が領域を持たないためfalse
。Area
、Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Line2D
の内部が、指定されたRectangle2D
を完全に内包するかどうかを判定します。このメソッドはShape
インタフェースを実装する必要がありますが、線には領域が含まれないため、Line2D
オブジェクトの場合は常にfalse
を返します。contains
、インタフェース: Shape
r
- テストされる指定されたRectangle2D
Line2D
が領域を持たないためfalse
。Shape.contains(double, double, double, double)
public Rectangle getBounds()
Shape
を完全に囲む整数のRectangle
を返します。返されたRectangle
がShape
を囲む最小のバウンディング・ボックスであるとは限りません。示されたRectangle
内にShape
が完全に収まるというだけです。また、Shape
が整数型の制限範囲を超える場合、返されたRectangle
はShape
を完全に囲むことができないこともあります。通常は、getBounds2D
メソッドの方が、表現の自由度が高いために、比較的ぴったりしたバウンディング・ボックスを返します。
内側の定義によって、shape
の定義する輪郭上の点が、返されたbounds
オブジェクトに含まれていると見なされない状況が発生する場合があります。ただし、これは、これらの点が元のshape
にも含まれていないと見なされる場合のみです。
point
がcontains(point)
メソッドに従ってshape
の内側にある場合は、bounds
のcontains(point)
メソッドに従って、返されたRectangle
境界オブジェクトの内側にある必要があります。具体的には、次のようになります。
shape.contains(x,y)
には次が必要: bounds.contains(x,y)
point
がshape
の内側にない場合は、引き続きbounds
オブジェクトに含まれている可能性があります。
bounds.contains(x,y)
は次を示さない: shape.contains(x,y)
getBounds
、インタフェース: Shape
Shape
を完全に囲む整数型のRectangle
。Shape.getBounds2D()
public PathIterator getPathIterator(AffineTransform at)
Line2D
の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのLine2D
クラスでは、このLine2D
オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。getPathIterator
、インタフェース: Shape
at
- 指定されたAffineTransform
Line2D
の境界を定義するPathIterator
。public PathIterator getPathIterator(AffineTransform at, double flatness)
Line2D
の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチ・スレッドに対して安全ではありません。つまりこのLine2D
クラスでは、このLine2D
オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。getPathIterator
、インタフェース: Shape
at
- 指定されたAffineTransform
flatness
- 分割された曲線が終点を結ぶ直線によって置換される前に、指定された曲線の制御点が共線から外れることのできる最大距離。Line2D
オブジェクトは常に平坦であるため、このパラメータは無視される。Line2D
の境界を定義するPathIterator
public Object clone()
clone
、クラス: Object
OutOfMemoryError
- 十分なメモリーがない場合。Cloneable
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.Use is subject to license termsDocumentation Redistribution Policyも参照してください。