描画効果をベースにした新しいアプリを開発しようとしています。単純な効果は知っていますが、ブラシ効果(鉛筆効果)のあるアプリを見たことがあります。
このように考えるにはどうすればよいですか?(SignNow アプリ)
ありがとう
以下にいくつかの例を示します。(最初に私のコードを使用し、次に同じ効果が必要です)
最初 :
2番目 :
私のコード:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
// Set drawing params
CGContextSetLineWidth(context, self.lineWidth);
CGContextSetStrokeColorWithColor(context, [self.foreColor CGColor]);
CGContextSetLineCap(context, kCGLineCapButt);
CGContextSetLineJoin(context, kCGLineJoinRound);
CGContextBeginPath(context);
// This flag tells us to move to the point
// rather than draw a line to the point
BOOL isFirstPoint = YES;
// Loop through the strings in the array
// which are just serialized CGPoints
for (NSString *touchString in self.handwritingCoords) {
// Unserialize
CGPoint tapLocation = CGPointFromString(touchString);
// If we have a CGPointZero, that means the next
// iteration of this loop will represent the first
// point after a user has lifted their finger.
if (CGPointEqualToPoint(tapLocation, CGPointZero)) {
isFirstPoint = YES;
continue;
}
// If first point, move to it and continue. Otherwize, draw a line from
// the last point to this one.
if (isFirstPoint) {
CGContextMoveToPoint(context, tapLocation.x, tapLocation.y);
//CGContextAddArc(ctx, tapLocation.x, tapLocation.y, 30.00, (startDeg-90)*M_PI/180.0, (endDeg-90)*M_PI/180.0, 0);
isFirstPoint = NO;
} else {
CGPoint startPoint = CGContextGetPathCurrentPoint(context);
CGContextAddQuadCurveToPoint(context, startPoint.x, startPoint.y, tapLocation.x, tapLocation.y);
CGContextAddLineToPoint(context, tapLocation.x, tapLocation.y);
}
}
// Stroke it, baby!
CGContextStrokePath(context);
}