2011-05-20 74 views
1

我正在做一个项目来实现虚拟化学实验室系统。我试图通过使用java2D来做到这一点。我在这里遇到了一个大问题。那就是如何向烧杯或烧瓶显示某种填充效果(烧杯是图像)。我在WritableRaster(java.awt.image)类中使用setPixel()方法尝试了这一点。但没有多大用处。Java2D帮助显示填充图像

我需要一个帮助来显示填充到烧杯中的某些物质,并在混合两种化学物质时显示颜色变化。请记住,烧杯是一个图像。在此先感谢,如果任何人都可以给我一个示例代码的解决方案。

回答

1

我建议使用使用Batik的动态SVG画布,然后您可以使用高级高级功能(如遮罩和混合等)。这不是最有效的解决方案,但谁在乎?它对未来很灵活。此外,需要进行大量优化才能确定图像的哪些部分实际发生了变化,并通过这些部分来提高效率。我希望Batik把它作为标准。此外,你会看到非常好看的东西。

无论如何,你只需要使用Inkscape来创建SVG,然后相应地修改DOM(文档对象模型)。这就像搞乱HTML一样。 Here是一些SVG烧杯剪贴画。

2

很方便的是,许多类实现了Shape接口。实现类与fill()一起工作良好,如图所示here。要显示颜色转换,请考虑AlphaComposite,如here所示。