JavaFX:如何在不影响背景的情况下清除绘图

标签 java canvas javafx

非常简单的问题,但我无法在 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/

相关文章:

java - Hadoop 构建在 Windows 7、Maven 3.1.1、Jdk 1.7.0_45 上失败(Hadoop src 2.2.0)

javascript - 如何使用 JavaScript 从 html5 canvas 检索原始位图数据?

javascript - 如何在 HTML5 Canvas 中进行碰撞?

javascript - 使线条在 Canvas 内闪烁

java - 按钮悬停和按下效果 CSS Javafx

java - 等待 Swing 界面关闭后再继续

java - 乘法数组表

java - 我无法找到我的程序发送异常的原因

java - 将对象拖放到舞台外的新窗口

java - 堆栈溢出错误-java