gpt4 book ai didi

iphone - UIView 中的 BezierPath 旋转

转载 作者:行者123 更新时间:2023-11-29 13:36:04 25 4
gpt4 key购买 nike

我正在绘制 BezierPath on Touch 事件。现在我必须使用手势方法在同一位置旋转贝塞尔路径。但问题是,旋转后其位置发生变化。它看起来像下图。我该如何解决这个问题?

BezierPath Drawing

上图为原图。与我分享你的想法..提前致谢

最佳答案

检查 Apple documentation.

应用转换:使用指定的仿射变换矩阵变换路径中的所有点。

- (void)applyTransform:(CGAffineTransform)transform

这个我没试过。但这里是如何从链接 rotating-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;
}

关于iphone - UIView 中的 BezierPath 旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10533793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com