확인이 사전에 나와 함께 아이디어 .. 감사를 공유 지정된 아핀 변환 행렬 사용하여 경로에있는 모든 포인트를 변환합니다.
- (void)applyTransform:(CGAffineTransform)transform
나는 이것을 시도하지 않았다. 그러나 여기 NSBezierPath
을 rotating-nsbezierpath-objects 링크에서 돌리는 방법이 있습니다. 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;
}