问题描述
嘿,我正在编写一个快速程序,但遇到了一些需要使用圆圈进行碰撞检测的地方.但据我所知,只有 Rectangle 类具有 .intersects(Point p) 方法.有没有类似圆圈的东西可以用同样的方式使用?
有一个类叫Ellipse2D
在您可以使用的 java.awt.geom
包中,因为它有一些看起来像您的方法重新寻找.宽度等于高度的椭圆是圆.
contains
的其中一个重载允许您测试圆点碰撞:
boolean contains(double x, double y)
测试指定的坐标是否在边界内Shape
,正如内在定义所描述的那样.
另一个名为 intersects
的函数允许您测试圆与矩形的碰撞:
boolean intersects(double x, double y, double w, double h)
测试 Shape
的内部是否与指定矩形区域的内部相交.
注意 Ellipse2D
是一个抽象类;您可以使用其中一个嵌套子类 Ellipse2D.Double
或 Ellipse2D.Float
,唯一的区别是用于存储维度的数据类型.
Hey I was writing a quick program and something came across where I need to use a circle for collision detection. But as far as I know, there is only the Rectangle class that has the .intersects(Point p) method. Is there anything like a circle that I could use the same way?
There is a class called Ellipse2D
in the java.awt.geom
package that you can use, since it has some methods that appears to be what you're looking for. An ellipse with a width equal to its height is a circle.
One of the overloads for contains
allows you to test for circle-point collisions:
boolean contains(double x, double y)
Tests if the specified coordinates are inside the boundary of the
Shape
, as described by the definition of insideness.
Another function called intersects
allows you to test for circle-rectangle collisions:
boolean intersects(double x, double y, double w, double h)
Tests if the interior of the
Shape
intersects the interior of a specified rectangular area.
Note that Ellipse2D
is an abstract class; you would use one of its nested subclasses Ellipse2D.Double
or Ellipse2D.Float
, the only difference being the data type used to store the dimensions.
这篇关于Java中是否有像Rectangle类这样的circle类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!