2

我有一堆 Line2D,我需要在单个图形上下文中执行一些计算。例如,我只需要查看哪些相交,哪些重叠等。图形永远不需要显示,只需在后台运行即可。最好的方法是什么?

4

2 回答 2

1

如果它们从不需要显示,那么您不需要创建图形上下文。只需使用所需坐标构造 Line2D.Double(或 Line2D.Float)对象,然后根据需要调用intersectsLine(Line2D)方法。

例如:

Line2D.Double firstLine = new Line2D.Double(0.0, 0.0, 1.0, 1.0);
Line2D.Double secondLine = new Line2D.Double(0.5, 0.0, 0.5, 1.0);
boolean intersectionOccurs = firstLine.intersectsLine(secondLine);

如果我的心智图生成器正在工作,那么对于交集发生应该是正确的。

于 2012-07-29T17:12:28.530 回答
0

除非图形以某种方式与同一程序中显示的内容直接相关,否则这可能不是一个好方法。哪些绘图操作涉及哪些位的详细信息是神秘的、未记录的,并且在大多数情况下不能保证从一个环境到另一个环境是一致的。

例如,数学上相交的两条线可能会相互穿过而不共享任何像素。绘制三角形可以产生几个离散的斑点,而不是一个连续的斑点。

于 2012-07-29T21:09:59.447 回答