我想以度为单位计算图像的旋转度(计算仿射变换)。 这是我到目前为止所得到的:
extension Double {
var toDegrees: Double { return self * 180 / .pi }
}
let rotationAngle = Double(atan2f(Float(self.myView.transform.b), Float(self.myView.transform.a))).toDegrees
print(rotationAngle)
“rotationAngle”我看起来很不错但是我不是:
但是,如果我将图像旋转约0°或约180°,我会得到相同的值(相同的旋转图像约90°&& -90° - >值是 45°):
编辑:这是我在imageView上应用旋转的方法:
self.ImageView.transform = CGAffineTransform(rotationAngle: CGFloat(.pi))
如何解决此问题以获得每个旋转角度的唯一值? (0° - 360°)。
编辑:
查看更多旋转(第一个值是degree value
我已经转动图像,第二个值是计算出的rotationAngle
):
编辑2:
0° --> rotationAngle: 0.249977666546474, transform.b: 0.004362960593833, transform.a: 0.999990482242134
-90° --> rotationAngle: -44.999557289943, transform.b: -0.999984511428548, transform.a: 0.00556568980525373
180° --> rotationAngle: 0.0352338243182017, transform.b: 0.00061494629500543, transform.a: -0.999999810920509
90° --> rotationAngle: 44.9995128937134, transform.b: 0.99998300906796, transform.a: -0.00582937178330692