ちょっと私は簡単なプログラムを書いていました、そして私が衝突検出のために円を使う必要があるところに何かが出くわしました。しかし、私が知る限り、.intersects(Point p)メソッドを持つRectangleクラスのみがあります。同じように使える円のようなものはありますか?
Ellipse2D
パッケージには Java.awt.geom
というクラスがあります。これは、探しているように見えるメソッドがいくつかあるためです。幅が高さに等しい楕円は円です。
contains
のオーバーロードの1つを使用すると、円点の衝突をテストできます。
boolean contains(double x, double y)
内部性の定義で説明されているように、指定された座標が
Shape
の境界内にあるかどうかをテストします。
intersects
と呼ばれる別の関数を使用すると、円と長方形の衝突をテストできます。
boolean intersects(double x, double y, double w, double h)
Shape
の内部が指定された長方形領域の内部と交差するかどうかをテストします。
Ellipse2D
は抽象クラスであることに注意してください。ネストされたサブクラスEllipse2D.Double
またはEllipse2D.Float
のいずれかを使用しますが、唯一の違いは、ディメンションの格納に使用されるデータ型です。
Ellipse2Dがあります。これは、正方形が長方形、円が楕円であるのと同じ方法です。
http://docs.Oracle.com/javase/7/docs/api/Java/awt/geom/Ellipse2D.html
Java.awt.Shapeも。 およびそれを実装するすべてのクラス:Arc2D、Arc2D.Double、Arc2D.Float、Area、BasicTextUI.BasicCaret、CubicCurve2D、CubicCurve2D.Double、CubicCurve2D.Float、DefaultCaret、 Ellipse2D 、Ellipse2D.Double、Ellipse2D.Float、GeneralPath、Line2D、Line2D.Double、Line2D.Float、Path2D、Path2D.Double、Path2D.Float、Polygon、QuadCurve2D、QuadCurve2D.Double、QuadCurve2D.Float 、Rectangle、Rectangle2D、Rectangle2D.Double、Rectangle2D.Float、RectangularShape、RoundRectangle2D、RoundRectangle2D.Double、RoundRectangle2D.Float