2010-11-16 34 views
2

比方说,我们有一个参数曲线,例如圆:如何优化绘制参数连续曲线?

x = r * cos(t) 
    y = r * sin(t) 

我们要绘制在一个方式在屏幕上的曲线:

  • 每个像素画只有一次(在最佳的部分)
  • 则每个(X,Y涂漆像素),其位于曲线上(连续部分)

如果我们只是图(X,Y)为EAC在[t1,t2]中的小时,这些条件将不会被满足。

我正在寻找任何参数曲线的一般解决方案。

+0

你怎么阴谋(X,Y)=(1.5,1.5)?你画的像素(1,1),(1,2),(2,1),(2,2)? – 2010-11-16 14:15:17

+0

四舍五入到最接近的整数,所以只需(2,2) – 2010-11-16 14:29:00

回答

2

100%满足您的标准的一般解决方案不存在。

所以我们必须妥协。

通常,这是通过与步长(通常参数传递给例程)开始解决,这步长可以细分由启发式如触发:

  • 细分时,由段覆盖的距离较大大于给定的距离(例如,一个像素)时的弯曲方向改变太多

或者一个combinat

  • 细分这些离子。

    通常给细分的限制也是为了避免永久使用。

    许多提供参数化绘图的系统都以启发式参数和步长的一些可更改的默认设置开始。如果曲线不够“好”或需要太长时间,用户可以适应这些。

    问题是,总有病理曲线会打败您的绘图方法,使其错过细节或花费时间过长。

  • 1
    +0

    贝塞尔样条曲线可用于绘制点集,但是如果您有参数函数,则添加更多步骤比平滑空隙几乎总是更好。 – 2010-11-16 14:33:12