非常简单的问题,但我无法在 JavaFX 文档或 StackOverflow 中找到答案:
我有一个 JavaFX Canvas 填充了一个图形(对 strokeLine() 的各种调用,不是这里的问题)。我需要能够在此图形上绘制一个矩形,然后简单地清除矩形,而不影响背景中的图形。 (就像撤消操作一样)。
绘制矩形的代码('p' 和 'e' 是点):
gc.rect(p.getX(), p.getY(), e.getX()-p.getX(), e.getY()-p.getY());
gc.stroke();
最明显的答案是使用 clearRect() 方法,但问题是它还会清除背景中的图形部分...
所以问题是:如何清除使用 stroke() 绘制的绘图,而不影响背景中的其他绘图?
最佳答案
你不能用一个 Canvas 做到这一点。
Canvas 只存储你绘画操作的结果。 这是 Canvas 的好处,您可以在同一行上划百万次,它只会存储和表示结果,不会消耗更多内存。
因此,如果您需要在图表上绘制一些东西,您应该在图表上放置另一个 Canvas 并在第二个 Canvas 上绘制。
关于JavaFX:如何在不影响背景的情况下清除绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987852/