我正在尝试创建一个可以在用户定义的点/关键帧之间显示贝塞尔曲线的iPad应用。
作为示例,keyframe1的坐标为x:0,y:0,keyframe2的坐标为x:100,Y:100。
我想在关键帧1和2之间创建/显示Bezier曲线。问题是,我不知道如何读取和保存曲线的值。
有人能指出我这样做的正确方向,我已经想出了如何用曲线创建点/坐标/关键帧和UIBezierPath。是否有方法/函数/选项从两点之间的曲线中检索值?
我正在考虑在UIBezierCurve之上创建/添加很多点以提供曲线分辨率,这意味着当我迭代点并获得它们的坐标时,我可以从UIBezierCurve检索更准确的数据。
先谢谢。
答案 0 :(得分:0)
我从未见过用于从现有点创建三次或二次贝塞尔曲线的好算法。这是一个非常困难的问题,因为中间控制点不在曲线上。
还有另一种称为Catmull Rom样条的样条曲线,它可以更好地将曲线拟合到一组控制点。
您可以使用Catmull Rom样条线拍摄一系列线段并将其转换为更接近平滑曲线的线段。因此,您可以创建一个实际上是一系列短线段的UIBezierPath。
(杰出的)Erica Sadun的书“iOS 6开发者'手册”有一个配方,展示了如何使用它们。我会建议这种做法。