iOS开发中文社区 门户 iOS开发 iOS交流 查看内容

求助核心动画问题

2018-9-12 12:08| 发布者: admin| 查看: 69| 评论: 7|原作者: andywong

摘要: 请问如何让一条直线A沿一个贝塞尔曲线B进行形变,最后形变成该贝塞尔曲线B? 例如一条直线A沿着圆或者另一条直线进行形变,需要A形变并在动画过程中有个折线视觉效果? 有大佬知道吗 ... ... ...
求助核心动画问题
求助核心动画问题
求助核心动画问题
求助核心动画问题
求助核心动画问题
$title
$title
$title
请问如何让一条直线A沿一个贝塞尔曲线B进行形变,最后形变成该贝塞尔曲线B?
例如一条直线A沿着圆或者另一条直线进行形变,需要A形变并在动画过程中有个折线视觉效果?
有大佬知道吗

惊呆

大哭

感动

晕倒

口水
收藏 分享 邀请

最新评论

已有 7 人参与
全部评论(7)
引用 wxydasdad 2018-9-11 18:06
请问如何让一条直线A沿一个贝塞尔曲线B进行形变,最后形变成该贝塞尔曲线B?
例如一条直线A沿着圆或者另一条直线进行形变,需要A形变并在动画过程中有个折线视觉效果?
有大佬知道吗
引用 stravinsky 2018-9-11 19:32
听不懂。
引用 270090381 2018-9-11 20:37
101.GIF
让  直线 发生形变弯曲    最终   变成  贝塞尔曲线的形状?
引用 v_stephen 2018-9-11 20:38
CABasicAnimation或CAKeyframeAnimation 举个例子:
    CAShapeLayer *testLayer = [CAShapeLayer layer];
    testLayer.backgroundColor = [UIColor yellowColor].CGColor;
    testLayer.frame = CGRectMake(0, 100, 200, 200);
    testLayer.fillColor = [UIColor clearColor].CGColor;
    testLayer.strokeColor = [UIColor redColor].CGColor;
   
    UIBezierPath *path1 = [UIBezierPath bezierPath];
    [path1 moveToPoint:CGPointMake(0, 100)];
    [path1 addLineToPoint:CGPointMake(200, 100)];
    testLayer.path = path1.CGPath;
    [self.view.layer addSublayer:testLayer];
   
    UIBezierPath *path2 = [UIBezierPath bezierPath];
    [path2 moveToPoint:CGPointMake(0, 100)];
    [path2 addQuadCurveToPoint:CGPointMake(200, 100) controlPoint:CGPointMake(100, 0)];
   
    CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"path"];
    basicAnimation.fromValue = (__bridge id _Nullable)(path1.CGPath);
    basicAnimation.toValue = (__bridge id _Nullable)(path2.CGPath);
    basicAnimation.duration = 1;
    basicAnimation.repeatCount = INFINITY;
    basicAnimation.autoreverses = YES;
    [testLayer addAnimation:basicAnimation forKey:nil];
引用 zilianxin 2018-9-11 20:47
对 类似于贪吃蛇移动那种吧
引用 randomren 2018-9-11 21:25
感谢,不过貌似不能像贪吃蛇那种直线发生移动
引用 guloooo128 2018-9-11 22:25
三楼正解
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
返回顶部