gpt4 book ai didi

ios - iOS 中 CGPointApplyAffineTransform 函数的公式

转载 作者:行者123 更新时间:2023-11-28 21:35:48 25 4
gpt4 key购买 nike

我正在尝试基于 iOS 代码在 Android 中仿射旋转矩阵

iOS有两个函数CGAffineTransformMakeRotationCGPointApplyAffineTransform用于计算

Step 1: CGAffineTransformMakeRotation();

Input:

2.2860321998596191

Result:
a = -0.65579550461444569,
b = 0.75493857771840255,
c = -0.75493857771840255,
d = -0.65579550461444569,
tx = 0, ty = 0

Formula:

double A = Math.cos(RadiansRotated);

double B = -Math.sin(RadiansRotated);

double C = Math.sin(RadiansRotated);

double D = Math.cos(RadiansRotated);

我可以使用上面的公式计算第 1 步的 a、b、c、d

Step 2: CGPointApplyAffineTransform()

Input :

x = 612.55191924649432,
y = -391.95960729287646
And Matrix return from Step 1

Result:
x = -105.80336653205421,
y = 719.48442314773808

有人知道 ApplyAffineTransform 中使用的公式吗?

我需要第 2 步的帮助

我试过 Android 的 Matrix 类 - 不工作

我也尝试过使用 Java 的 AffineTransform - 不工作

最佳答案

CGAffineTransform 函数背后的数学原理在 “The Math Behind the Matrices” in the Quartz 2D Programming Guide 中有所描述。 .

使用仿射变换对点进行变换的公式如下:

x' = ax + cy + tx
y' = bx + dy + ty

顺带一提,在你的第1步中,你把b和c的符号调反了,起到了反转旋转方向的作用。

关于ios - iOS 中 CGPointApplyAffineTransform 函数的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969031/

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