gpt4 book ai didi

cocoa - 以图像中心为旋转轴旋转图像

转载 作者:行者123 更新时间:2023-12-03 16:51:00 24 4
gpt4 key购买 nike

如何使用 NSAffineTransform 以旋转轴为图像中心旋转一幅图像。

最佳答案

您需要将原点平移到要旋转的点,进行旋转,然后将原点平移回来:

@implementation NSAffineTransform (Rotation)
+ (NSAffineTransform *)transformRotatingAroundPoint:(NSPoint) p byDegrees:(CGFloat) deg
{
NSAffineTransform * transform = [NSAffineTransform transform];
[transform translateXBy: p.x yBy: p.y];
[transform rotateByDegrees:deg];
[transform translateXBy: -p.x yBy: -p.y];
return transform;
}
@end

用于 iOS 的 CGAffineTransform Swift 版本:

extension CGAffineTransform {
static func rotationAround(point: CGPoint, byDegrees degrees: CGFloat) -> CGAffineTransform {
CGAffineTransform()
.translatedBy(x: point.x, y: point.y)
.rotated(by: degrees * .pi / 180)
.translatedBy(x: -point.x, y: -point.y)
}
}

关于cocoa - 以图像中心为旋转轴旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521133/

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