所以我有一个随机生成一些 CGPoints 的函数,然后我从这些点创建一个 CGPath。我在关键帧动画中使用此路径为屏幕周围的视图设置动画。
使用以下代码生成路径:
- (CGMutablePathRef)generatePathFromCoordinates:(NSArray *)coordinates
{
CGMutablePathRef path = CGPathCreateMutable();
CGPoint point = [(NSValue *)[coordinates objectAtIndex:0] CGPointValue];
CGPathMoveToPoint(path, nil, point.x, point.y);
for (int i=1; i < coordinates.count; i++)
{
point = [(NSValue *)[coordinates objectAtIndex:i] CGPointValue];
CGPathAddLineToPoint(path, nil, point.x, point.y);
}
return path;
}
上面的代码效果很好,但是动画看起来有点奇怪,所以我想在坐标之间添加一条曲线而不是直线。就像下面的图片(我知道惊人的绘画技巧!)。路径“A”是我目前正在做的,路径“B”是我的目标:
在查看了 CGPath 参考中可用的函数后,我可以看到一些可以完成工作的函数,CGPathAddArcToPoint
CGPathAddCurveToPoint
. 我对使用这些功能进行了简短的尝试,但无法获得预期的效果(可能是因为我使用不正确)
你们能指出我正确的方向以实现漂亮的曲线吗?
提前致谢