uns*_*ene 7 iphone bezier core-graphics
我使用CoreGraphics绘制二次贝塞尔曲线,但想要计算曲线的最小值/最大值.我不是数学背景,所以这有点麻烦.有没有人有任何关于如何解决这个问题的文章或想法?
对于二次贝塞尔曲线,这实际上非常简单。
定义你的三个控制点P0 = (x0,y0),P1 = (x1,y1)和P2 = (x2,y2)。要找到中的极值x,请求解以下方程式:
t = (x0 - x1) / (x0 - 2*x1 + x2)
Run Code Online (Sandbox Code Playgroud)
如果为0 <= t <= 1,则在处评估曲线t并将位置存储为Px。对以下内容执行相同的操作y:
t = (y0 - y1) / (y0 - 2*y1 + y2)
Run Code Online (Sandbox Code Playgroud)
同样,如果0 <= t <= 1在处评估曲线,t并将位置存储为Py。最后,查找包含轴对齐包围盒P0,P2,Px(如果找到)和Py(如果找到)。此边界框还将紧密约束2D二次Bezier曲线。
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |