Итак, у меня есть немного проекта, который я пытаюсь сделать. Я пытаюсь получить вращение устройств относительно силы тяжести и перевод с того места, где он начался. Таким образом, в основном получение «отслеживания» данных для устройства. Я планирую в основном применить это, сделав 3d pt, который будет имитировать данные, которые я записываю с устройства позже.Пожалуйста, помогите мне правильно применить данные о вращении устройства
В любом случае, чтобы попытаться достичь этого, я подумал, что лучше всего работать с набором сюжетов, чтобы я мог видеть вещи в трех измерениях точно так же, как и данные, которые я пытаюсь записать. Прямо сейчас я пытаюсь заставить корабль вращаться так, чтобы он всегда выглядел следующим образом (например, его на земле или что-то еще), что бы не вращало устройство. Я полагаю, что когда я это сделаю, это будет сич, чтобы применить это к точке. Таким образом, я сделал следующий код:
if let attitude = motionManager.deviceMotion?.attitude {
print(attitude)
ship.eulerAngles.y = -Float(attitude.roll)
ship.eulerAngles.z = -Float(attitude.yaw)
ship.eulerAngles.x = -Float(attitude.pitch)
}
Когда вы запускаете только одну из линий вращения, все прекрасно. Он правильно ведет себя на этой оси. Однако, когда я делаю все три оси, он становится хаотичным и выполняет далеко не ожидаемое с дрожанием и всем остальным.
Я думаю, мой вопрос: Кто-нибудь знает, как исправить мой код выше, чтобы корабль правильно стоял «вертикально», независимо от ориентации.
Этот вопрос - путь, слишком широкий. – nhgrif
@ nhgrif Я записал свои основные вопросы выше. Конечно, некоторые из них - более теория, чем приложение. Однако мой вопрос не является общим вопросом. Я четко заявил, на что я надеялся, и что случилось, когда я это сделал. –
Вопрос 1 сам не слишком широк, я не думаю. Вы должны рассмотреть вопрос о сужении сферы действия этого поста вплоть до этого вопроса, чтобы этот пост не был закрыт для того, чтобы быть чрезвычайно широким. – nhgrif