我使用Java Swing创建简单的游戏,如Pong和Air Hockey,我经常发现自己使用毕达哥拉斯定理来计算两点之间的距离。
虽然编写起来并不痛苦(可以简化为单行),但我想知道Java是否已将其包含在某处。
我浏览了数学课,但我没有看到任何东西。我不知道在哪里可以看,所以如果确实存在,有谁知道在哪里?
谢谢!
答案 0 :(得分:5)
答案 1 :(得分:1)
您可以使用java awt.geom
类。特别是,请看Point2D here
请注意,这些类是为图形界面设计的,并使用从0,0
左上角开始的绘图点,随着向下和向下的增加而增加。因此,对于x=2, y=3
,这一点是三个points
向下,两个points
位于图的左上角。
您可以以静态方式使用该类:
Point2D.distance(x1, y1, x2, y2);
但也是以oo的方式:
Point2D point1 = new Point2D.Double(x1, y1);
point1.distance(x2, y2);
point1.distance(new Point2D.Double(x2, y2));
我提到这些库不是因为它们最容易使用(Math
库是最直接找到两点之间的距离),但是你在谈论2D图形程序。对于这类事情,java geom
库中有很多好东西。因此,如果你想弄清楚你的点是否在正方形内(或者任何其他形状),你可以做到这一点。或者,如果你想弄清楚一个形状是否与另一个形状相交,或者两条线交叉,你也可以这样做。
答案 2 :(得分:1)
如果您使用Swing / AWT,您可以将坐标表示为java.awt.geom.Point2D
或java.awt.Point
,它是第一个的子类。在该课程中,您使用方法distance(Point2D)
,它可以为您提供所需的结果。
如果您决定从Swing切换到JavaFX,可以使用提供相同功能的javafx.geometry.Point2D
。