2010-12-10 63 views
0

我想为各种函数绘制y = f(x)的曲线,并且我希望绘图的质量尽可能好。也就是说,为了提高性能,我宁愿避免在Java代码中渲染单个像素。用于平滑绘图的算法(Java2d)

换句话说,我想挤出与Java2D一样多的质量。

目前我正在计算x方向上每个像素的float(x,y)值。然后我通过在这些点之间绘制线来创建一个Shape(使用点坐标的浮点值)。我已经提出了双线性插值,抗锯齿和质量渲染的提示。

结果并不可怕,它只是可以通过,但我已经看到更好。我认为问题是,即使我使用浮点坐标,我实际上是绘制了一个多边形,所以只有很多Java2D可以做。

还有什么我可以做的改善呢?

+0

我们可以得到结果的屏幕截图吗? (否则很难说它是如何改进的。) – aioobe 2010-12-10 22:39:20

回答

1

当我在大学学习计算机图形时,我们做了一个基于“Bézier曲线”的课程。它可能是你正在寻找的算法。在这里寻找更多细节:

http://en.wikipedia.org/wiki /Bézier_curve

基本上它是一种如何与平滑的曲线代替多边形。