Вращайте коробку/камеру со скоростью в SceneKit

Аспекты .allowcameracontrol идеально подходят для моего использования. В настоящее время я вращаю узел камеры (дочерний элемент сферы) вокруг куба. Я бы хотел, чтобы вращение постепенно останавливалось (например, разрешает управление камерой).

Может ли кто-нибудь помочь в том, как медленно остановить вращение в зависимости от скорости жеста? Добавить трение в камеру?


person malaki1974    schedule 19.06.2015    source источник


Ответы (1)


Я потратил много времени, работая над этим, и на самом деле это сложная тема. Лучший подход, который я нашел, заключается в следующем:

  1. Сохраняйте последние 10 или около того событий перетаскивания каждый кадр
  2. После выпуска рассчитайте скорость для осей X и Y на основе этих кадров.
  3. Продолжайте перемещать камеру, используя эти значения скорости.
  4. Каждый кадр снижайте скорость. Глядя на пружинные уравнения, вы сможете сделать их более реалистичными.
  5. Когда скорость ниже небольшого порога, прекратите движение, чтобы избежать бесконечного дрейфа.
person Moustach    schedule 20.06.2015