iOS 中 CGPointApplyAffineTransform 函数的公式
Formula for CGPointApplyAffineTransform function in iOS
我正在尝试根据 iOS 代码
在 Android 中仿射旋转矩阵
iOS有两个函数CGAffineTransformMakeRotation
和CGPointApplyAffineTransform
用于计算
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 的矩阵 class - 不工作
我也尝试过 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 代码
在 Android 中仿射旋转矩阵iOS有两个函数CGAffineTransformMakeRotation
和CGPointApplyAffineTransform
用于计算
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 的矩阵 class - 不工作
我也尝试过 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的符号调反了,起到了反转旋转方向的作用