gpt4 book ai didi

iphone - 从 CGAffineTransform 中查找比例值

转载 作者:可可西里 更新时间:2023-11-01 03:30:16 24 4
gpt4 key购买 nike

好的,所以我意识到我可以像这样从层的 CATransform3D 中找到比例值:

 float scale = [[layer valueForKeyPath: @"transform.scale"] floatValue];

但我终究无法弄清楚如何从 CGAffineTransform 中找到比例值。举例来说,我有一个名为“cameraTransform”的 CGAffineTransform:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
CGAffineTransform *cameraTransform = imagePicker.cameraViewTransform;

现在如何从 cameraTransform 获取比例值?

最佳答案

我尝试为所有类型的 CGAffineTransforms 给出一个通用的答案,甚至是旋转的。

假设您的 CGAffineTransform 包含(可选)

  • 轮换
  • 翻译
  • 缩放

  • 没有偏差

然后有一个通用公式可以为您提供比例因子:

CGAffineTransform transform = ...;
CGFloat scaleFactor = sqrt(fabs(transform.a * transform.d - transform.b * transform.c));

“镜像”或翻转坐标方向将被忽略,这意味着 (x --> -x; y --> y) 将导致 scaleFactor == 1 而不是 -1。

关于iphone - 从 CGAffineTransform 中查找比例值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775925/

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