Мне нужно повернуть модель, которая может свободно вращаться, с точностью до градуса, независимо от того, сколько раз она была повернута.
У меня есть UIPanGestureRecognizer, который свободно вращает 3D-модель вокруг оси Y. Однако я изо всех сил пытаюсь заставить его блокироваться до целого числа, когда панорамирование остановлено, и я изо всех сил пытаюсь узнать его вращение в градусах от 0-359.
let translation = recognizer.translation(in: self.view)
var newAngleY = Double(translation.x) * (Double.pi) / 180.0
newAngleY += self.currentAngle
self.shipNode?.eulerAngles.y = Float(newAngleY)
if (recognizer.state == .ended)
{
self.currentAngle = newAngleY
}
Он вращается свободно, но все попытки зафиксировать до ближайшего точного градуса и иметь возможность «узнать» его степень вращения в значении от 0 до 359.
Я знаю, что:
let degrees = newAngleY * ( 180 / Double.pi)
И я знаю, что если градусов> 360, то - = 360 (псевдокод)
Однако, пока UIPanGestureRecognizer делает свое дело, эти проверки, похоже, не срабатывают, и я не знаю почему. Это потому, что когда он все еще панорамируется, вы не можете редактировать закрытые свойства ViewController?