在Java中为背景计算创建图形上下文

在Java中为背景计算创建图形上下文,java,graphics,draw,java-2d,Java,Graphics,Draw,Java 2d,我有一组Line2D,需要在单个图形上下文中对其执行一些计算。例如,我只需要查看哪些图形相交,哪些图形重叠,等等。图形不需要显示,只需要在背景中运行。最好的方法是什么?如果不需要显示它们,则无需创建图形上下文。只需使用所需的坐标构造Line2D.Double(或Line2D.Float)对象,然后根据需要调用该方法 例如: Line2D.Double firstLine = new Line2D.Double(0.0, 0.0, 1.0, 1.0); Line2D.Double secondLi

我有一组Line2D,需要在单个图形上下文中对其执行一些计算。例如,我只需要查看哪些图形相交,哪些图形重叠,等等。图形不需要显示,只需要在背景中运行。最好的方法是什么?

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

例如:

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);

如果我的mental graph generator正在工作,这应该适用于相交事件。

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

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

您能在此基础上展开吗?我在这里只使用简单的2D几何体,所以我不明白如果两条Line2D相交或重叠,它们怎么可能不共享像素。单像素宽的线形成阶梯图案。很容易构造楼梯不共享任何像素的相交线。另一方面,如果线“胖”而不是单个像素,那么数学上不相交的线可以共享一些像素。