我正在尝试为各种函数绘制y = f(x)的曲线,并且希望该图尽可能地好。也就是说,出于性能方面的考虑,我宁愿避免在Java代码中渲染单个像素。
换句话说,我想从Java2D中挤出尽可能多的质量。
目前,我正在计算x方向上每个像素的float(x,y)值。然后,通过在这些点之间绘制线来创建Shape(将浮点值用作点坐标)。我有双线性插值,抗锯齿和质量渲染的渲染提示。
结果并不可怕,几乎可以通过,但我看得更好。我认为问题是,即使我使用的是浮点坐标,我实际上还是在绘制多边形,所以Java2D只能做很多事情。
有什么我可以做些改善的吗?
最佳答案
当我在大学学习计算机图形学时,我们根据“贝塞尔曲线”进行了课程设计。它可能是您正在寻找的算法。在这里查看更多详细信息:
http://en.wikipedia.org/wiki /Bézier_curve
基本上,这是一种用平滑曲线替换多边形的方法。