我试图为各种函数绘制y = f(x)的曲线,我希望绘图尽可能好。也就是说,出于性能原因,我宁愿避免在我的Java代码中渲染单个像素。
换句话说,我想尽可能多地从Java2D中榨取质量。
目前我正在计算x方向上每个像素的浮点数(x,y)。然后我通过在这些点之间绘制线来创建一个Shape(使用点坐标的浮点值)。我有双线性插值,抗锯齿和质量渲染的渲染提示。
结果并不可怕,只是差强人意,但我看得更清楚了。我认为问题是,即使我使用浮点坐标,我实际上是绘制一个多边形,所以Java2D只能做这么多。
我还能做些什么来改善这个?
答案 0 :(得分:1)
当我在大学学习计算机图形学时,我们做了一个基于“BézierCurve”的课程。它可能是您正在寻找的算法。在这里查看更多细节:
http://en.wikipedia.org/wiki /Bézier_curve
基本上,这是一种如何用平滑曲线替换多边形的方法。