touchMovedに基づいてパスを描画するアプリを作成しています。タッチの速度に基づいて線の幅を作りたいです。私はこの効果を達成することができますが、これには滑らかさがありません。
コード:
-(float) clampf:(float) v: (float) min: (float) max
{
if( v < min ) v = min;
if( v > max ) v = max;
return v;
}
- (float)extractSize:(UIPanGestureRecognizer *)panGestureRecognizer
{
vel = [gesture velocityInView:self.view];
mag = sqrtf((vel.x * vel.x) + (vel.y * vel.y)); // pythagoras theorem (a(square) + b(square) = c(square))
final = mag/166.0f;
final = [self clampf:final :1 :40];
NSLog(@"%f", final);
if ([velocities count] > 1) {
final = final * 0.2f + [[velocities objectAtIndex:[velocities count] - 1] floatValue] * 0.8f;
}
[velocities addObject:[NSNumber numberWithFloat:final]];
return final;
}
しかし、私はこのようなものを手に入れています: