IOS 初学笔记 之 正余弦曲线 海浪 动画效果

//、、海浪动画

@property(nonatomicstrongUIView*back;

@property(nonatomicstrongCAShapeLayer*waveShapeLayer;

@property(nonatomicassignCGFloato ffsetX;

@property(nonatomicassignCGFloat waveHeight;

 

//、、创建波动的UIVIEW

    _back = [[UIView alloc] initWithFrame:CGRectMake(0130, self.view.frame.size.width, 50)];

    [self.view addSubview:_back];

    self.waveShapeLayer = [CAShapeLayer layer];

   //默认背景为白色 定义颜色

    self.waveShapeLayer.fillColor = [UIColor colorWithRed:green:blue:alpha:1].CGColor;

    [self.back.layer addSublayer:self.waveShapeLayer];

 

//、、启动动画

CADisplayLink *displayLink= [CADisplayLink displayLinkWithTarget:selfselector:@selector(getCurrentWave)];

[displayLink addToRunLoop:[NSRunLoopmainRunLoopforMode:NSRunLoopCommonModes];

 

- (void)getCurrentWave {

    //offsetX决定x位置,如果想搞明白可以多试几次

    self.offsetX+=0.01;

    //声明第一条波曲线的路径

    CGMutablePathRefpath = CGPathCreateMutable();

    //设置起始点

    CGPathMoveToPoint(path, nil0self.waveHeight);    

    CGFloat y = 0.f;

    //波纹的公式

    for(floatx = 0.f; x <= self.waveWidth; x++) {

// y=上下波动幅度* sin(起伏的个数个数之间的角度左右偏移(走动效果))+上下偏移度数

        y = 30sin((400/ _back.frame.size.width) * (x * M_PI200) - self.offsetX) + self.waveHeight;

        CGPathAddLineToPoint(path, nil, x, y);

    }

    //把绘图信息添加到路径里

    CGPathAddLineToPoint(path, nilself.waveWidth_back.frame.size.height);

    CGPathAddLineToPoint(path, nil0_A.frame.size.height);

    //结束绘图信息

    CGPathCloseSubpath(path);

    self.waveShapeLayer.path= path;

    //释放绘图路径

    CGPathRelease(path);

        //        y=Asin(ωx+φ)+k

//        A :振幅,曲线最高位和最低位的距离

//

//        ω :角速度,用于控制周期大小,单位x中起伏的个数

//

//        K :偏距,曲线上下偏移量

//

//        φ :初相,曲线左右偏移量

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值