嘿,我正在编写一个快速程序,但遇到了一些需要使用圆圈进行碰撞检测的地方.但据我所知,只有 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
Shapeintersects 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类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何检测 32 位 int 上的整数溢出?How can I detect integer overflow on 32 bits int?(如何检测 32 位 int 上的整数溢出?)
return 语句之前的局部变量,这有关系吗?Local variables before return statements, does it matter?(return 语句之前的局部变量,这有关系吗?)
如何将整数转换为整数?How to convert Integer to int?(如何将整数转换为整数?)
如何在给定范围内创建一个随机打乱数字的 intHow do I create an int array with randomly shuffled numbers in a given range(如何在给定范围内创建一个随机打乱数字的 int 数组)
java的行为不一致==Inconsistent behavior on java#39;s ==(java的行为不一致==)
为什么 Java 能够将 0xff000000 存储为 int?Why is Java able to store 0xff000000 as an int?(为什么 Java 能够将 0xff000000 存储为 int?)