绘制一个移动的正弦波消除锯齿

San*_*eep 6 graphics cocoa-touch objective-c ios

我想以清晰和抗锯齿的方式绘制具有可变频率和可变幅度的移动正弦波.这怎么可能?

San*_*eep 11

好吧,我将正弦波实现到UIView drawrect方法中,如下所示:

 float x=75;
 float yc=50;
 float w=0; 
  while (w<=rect.frame.size.width) {
    CGPathMoveToPoint(path, nil, w,y/2);
    CGPathAddQuadCurveToPoint(path, nil, w+x/4, -yc,w+ x/2, y/2);
    CGPathMoveToPoint(path, nil, w+x/2,y/2);
    CGPathAddQuadCurveToPoint(path, nil, w+3*x/4, y+yc, w+x, y/2);
    CGContextAddPath(context, path);
    CGContextDrawPath(context, kCGPathStroke);
    w+=x;
   }
Run Code Online (Sandbox Code Playgroud)

这里x是每个正弦波的宽度,而y是帧的高度.这将绘制数量的正弦波以适应整个UIViewFrame.它会产生清晰的正弦波,yc是控制手柄.尝试你可能会喜欢它.

如果宽度即.x类似于帧的宽度,然后将产生单个正弦波.

完整正弦波数=(帧宽)/(每个正弦波的'x'宽度)