android 贝塞尔曲线 画圆,如何用贝塞尔曲线创建圆?

在comp.graphics.faq中涵盖

摘抄:

主题4.04:如何将贝塞尔曲线拟合到圆上?

有趣的是,贝塞尔曲线可以近似一个圆,但不能完美地拟合一个圆。一个常见的近似方法是使用四个贝塞尔曲线来建模一个圆,每个贝塞尔曲线的控制点到端点的距离为d = r * 4 *(sqrt(2)-1)/ 3(其中r是圆半径),而在在端点处与圆相切的方向。这样可以确保贝塞尔曲线的中点在圆上,并且一阶导数是连续的。

这种近似的径向误差约为圆半径的0.0273%。

Michael Goldapp,“三次多项式逼近圆弧”,计算机辅助几何设计(#8 1991 pp.227-238)

Tor Dokken和Morten Daehlen,“曲率连续的贝塞尔曲线的圆的良好近似”,计算机辅助几何设计(1990年第7页,第33-41页)。http://www.sciencedirect.com/science/article/pii/016783969090019N(非免费文章)

另请参见http://spencermortensen.com/articles/bezier-circle/上的非付费文章

浏览器和画布元素。

请注意,某些浏览器将Bezier曲线用于其画布绘制弧,Chrome(目前)使用4扇区方法,而Safari使用8扇区方法,这种差异仅在高分辨率时才明显,因为该分辨率为0.0273%,并且只有在圆弧平行且异相绘制时才真正可见,您会注意到圆弧从真实圆中振荡。当曲线围绕其径向中心进行动画处理时,效果也更加明显,半径通常为600px半径,将在该大小上有所不同。

某些绘图API没有真正的圆弧渲染,因此它们也使用Bezier曲线,例如Flash平台没有圆弧绘图api,因此任何提供圆弧的框架通常都使用相同的Bezier曲线方法。

请注意,浏览器中的SVG引擎可能使用不同的绘制方法。

其他平台

无论您尝试使用哪种平台,都值得检查一下圆弧绘制的完成方式,以便您可以预测这样的视觉错误并进行调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值