我正在开发一个应用程序,我画了大量的线条(颜色作为黑色),并更新他们,我需要从屏幕上删除他们。
我想让他们的颜色与背景相匹配,这样我就能让他们隐藏起来。它似乎简单有效,但在实际意义上,我有10000点和几乎20000多条线要画,而且由于大多数线重叠或交叉,这是如此令人厌恶的观点。
因此,我需要某种功能来实际删除屏幕上两个已知点之间的选定线。即使我对背景颜色有问题,我也可以匹配小程序的确切的背景默认颜色。有人能给我建议解决方案或颜色吗?
发布于 2013-05-07 06:15:30
要使用背景颜色绘制,可以使用返回背景色的http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#getBackground(),可以将其设置为要绘制的图形对象。
使用双缓冲,首先通过使用默认颜色的矩形来清除区域:
g.setColor(backgroundColor);g.fillRect(0,0,fullWidth,fullHeight);
然后只画活动线。所以没有复杂的算法,只要从一个干净的板子开始,只画出所需的东西。
参考http://docs.oracle.com/javase/6/docs/api/java/awt/Graphics.html#setColor(java.awt.Color)
fillRect(int x,int y,int宽度,int高度)在同一页上
双缓冲在这里解释,http://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html
和https://stackoverflow.com/questions/4430356/java-how-to-do-double-buffering-in-swing你可以制作你自己的图像在屏幕外处理
https://softwareengineering.stackexchange.com/questions/190816
复制相似问题