2017-04-25 57 views
1

Java的学生在这里可以使用Line2D和Rectangle2D而不生成图形吗?

我试图创建一个线,当我移动物理加速度计/陀螺仪时,以及当线与我在2D坐标系中定位的矩形相交时返回TRUE的方法。

很显然,Line2D和Rectangle2D是我刚刚发现的图形类,除非它被设置在JFrame中并绘制,我不会寻找。所以我想知道是否有其他类可能更适合这个。或者,我是否必须手动总是计算线段的方程式,以及矩形段的四边,然后检查路口的交点?

任何想法?

+0

要找出一条直线是否与一个矩形相交,如果该直线的至少一个端点位于该矩形的内部,将更容易看清楚。不涉及线方程。 :-) –

+1

@Aron_dc两个端点都在矩形外的线段仍然可以与它相交。恐怕它需要的不仅仅是一个简单的测试。 –

+0

@G_H Oh dang,你说得对。甚至在几年前我的计算机图形学课程中已经涵盖了它。 –

回答

2

这些类只是封装形状信息。您可以在没有渲染的情况下使用它们,甚至可以在“无头”(无渲染硬件)环境中使用它们。

Line2D line = new Line2D.Double(1, 5, 4, 0); 
Rectangle2D rect = new Rectangle2D.Double(1, 1, 2, 2); 
System.out.println(line.intersects(rect)); 

这种输出 “真”。

+0

非常感谢!由于某些原因,当我尝试运行这个时,我一直在输出错误(空指针)。我会再给它一次。我很感激,伙伴。 – Fontayne

相关问题