在UIView中的BezierPath旋转
我正在绘制一个BezierPath on Touch事件。 现在我必须使用手势方法在相同的位置上旋转Bezierpath。 但问题是,轮换之后它的地位就变了。 它看起来像下面的图像..我怎样才能解决这个问题?
上图是原始图像。 与我分享你的想法..在此先感谢
在Apple文档中查看。
applyTransform:
使用指定的仿射变换matrix变换path中的所有点。
- (void)applyTransform:(CGAffineTransform)transform
我没有试过这个。 但是这里是如何从链接rotate -nsbezierpath-objects旋转一个NSBezierPath
。 尝试在UIBezierPath
上使用类似的方法。
- (NSBezierPath*)rotatedPath:(CGFloat)angle aboutPoint:(NSPoint)cp { // return a rotated copy of the receiver. The origin is taken as point <cp> relative to the original path. // angle is a value in radians if( angle == 0.0 ) return self; else { NSBezierPath* copy = [self copy]; NSAffineTransform* xfm = RotationTransform( angle, cp ); [copy transformUsingAffineTransform:xfm]; return [copy autorelease]; } }
它使用:
NSAffineTransform *RotationTransform(const CGFloat angle, const NSPoint cp) { // return a transform that will cause a rotation about the point given at the angle given NSAffineTransform* xfm = [NSAffineTransform transform]; [xfm translateXBy:cp.x yBy:cp.y]; [xfm rotateByRadians:angle]; [xfm translateXBy:-cp.x yBy:-cp.y]; return xfm; }