在Java中是否有类似Rectangle类的圆类

嘿,我正在编写一个快速程序,遇到了需要使用圆圈进行碰撞检测的地方。 但据我所知,只有Rectangle类具有.intersects(Point p)方法。 是否有类似圆圈的东西我可以用同样的方式?

java.awt.geom包中有一个名为Ellipse2D的类,您可以使用它,因为它有一些看起来像您正在寻找的方法。 宽度等于其高度的椭圆是圆形。

contains的重载之一允许您测试圆点碰撞:

 boolean contains(double x, double y) 

测试指定的坐标是否在Shape的边界内,如内部定义所述。

另一个名为intersects函数允许您测试圆矩形碰撞:

 boolean intersects(double x, double y, double w, double h) 

测试Shape的内部是否与指定矩形区域的内部相交。

注意Ellipse2D是一个抽象类; 您将使用其嵌套的子类Ellipse2D.DoubleEllipse2D.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