找回密码
 立即注册
搜索

本文来自

iOS开发交流区

iOS开发交流区

人已关注

请添加对本版块的简短描述

求助核心动画问题

[复制链接]

1

主题

1

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
328 andywong 发表于 2018-9-11 13:41:37
请问如何让一条直线A沿一个贝塞尔曲线B进行形变,最后形变成该贝塞尔曲线B?
例如一条直线A沿着圆或者另一条直线进行形变,需要A形变并在动画过程中有个折线视觉效果?
有大佬知道吗




上一篇:求助各位大神,可以赞助的辛苦费
下一篇:哪位大神见过这种可以拖动的view?
楼主热帖
wxydasdad 发表于 2018-9-11 18:06:42
请问如何让一条直线A沿一个贝塞尔曲线B进行形变,最后形变成该贝塞尔曲线B?
例如一条直线A沿着圆或者另一条直线进行形变,需要A形变并在动画过程中有个折线视觉效果?
有大佬知道吗
回复

使用道具 举报

stravinsky 发表于 2018-9-11 19:32:03
听不懂。
回复

使用道具 举报

270090381 发表于 2018-9-11 20:37:51

让  直线 发生形变弯曲    最终   变成  贝塞尔曲线的形状?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

v_stephen 发表于 2018-9-11 20:38:54
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:29
对 类似于贪吃蛇移动那种吧
回复

使用道具 举报

randomren 发表于 2018-9-11 21:25:02
感谢,不过貌似不能像贪吃蛇那种直线发生移动
回复

使用道具 举报

guloooo128 发表于 2018-9-11 22:25:08
三楼正解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则