我找不到用于贝塞尔曲线,b样条曲线,nurbs等更高级曲线的算法。 。
我在哪里可以找到引用?
我还有另一个疑问:扫描转换和光栅化是同一件事吗?
#1 楼
忽略非均匀B样条曲线(有理与否),我在贝塞尔曲线的栅格化方面有一些经验,而且由于从均匀B样条到贝塞尔曲线也有微不足道的映射。已经使用了两种不同的技术:第一种是使用Newton-Rhapson来计算当前扫描线与曲线的交点的扫描线渲染器。这需要一阶导数,但由于可以从父曲线的控制点再次作为Bezier表示形式进行微分,因此很容易获得。此外,一阶导数控制点的边界框可用于检测区域与扫描线的交点是否大于1。当前扫描线可以使用先前扫描线的解作为起点-通常,通过一次迭代即可提供高度精确的解决方案。或者,第二种方法是简单地应用曲线的二进制细分,然后使用您喜欢的多边形渲染器将其渲染为一系列直线段。如果我没记错的话,至少对于三次贝塞尔曲线,在每个细分中,连接(sub)Bezier端点的线段与真实曲线之间的误差减少了4倍。因此,在大多数情况下,它不需要在多边形逼近与真实曲线之间的差异不大之前,许多细分都微不足道。在最近的Twitter提要中。
评论
$ \ begingroup $
对于三次曲线,扫描线方法也可以看作是一维问题,仅涉及Y方程(即三次方程)。您可以通过分析找到两个极值(这是一个二次方程式),以实现根的可靠分离。根的完全解析计算也是可能的,但是增量分辨率(牛顿或其他)的成本较低。
$ \ endgroup $
–伊夫·达乌斯特(Yves Daoust)
2015年9月23日下午6:33
评论
“我还有另一个疑问:扫描转换和光栅化是同一件事吗?”请参阅en.wikipedia.org/wiki/Bézier_curve#Computer_graphics。