计算图像旋转 - (0°360°)

时间:2018-02-12 12:12:53

标签: ios swift image user-interface math

我想以度为单位计算图像的旋转度(计算仿射变换)。 这是我到目前为止所得到的:

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°):

img

编辑:这是我在imageView上应用旋转的方法:

self.ImageView.transform = CGAffineTransform(rotationAngle: CGFloat(.pi))

如何解决此问题以获得每个旋转角度的唯一值? (0° - 360°)。

编辑:

查看更多旋转(第一个值是degree value我已经转动图像,第二个值是计算出的rotationAngle):

img

编辑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

0 个答案:

没有答案