Reputation: 31
I try to developpe a new app based on drawing effects. I know simple effect, but i have seen some app with a brush effect (pencil effect).
how to do somethink like this ? (SignNow app)
Thanks
You can see some example below. (first with my code and second i want the same effect)
first :
second :
my code :
- (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);
}
Upvotes: 3
Views: 1219
Reputation: 1206
I recommend to get some inspiration on the active smooth-drawing project. That's an excellent place to begin and learn the best practices. Besides you can learn more about the thinking behind this project on the great article drawing smooth lines with cocos2d.
Upvotes: 1