Как показано на рисунке ниже, у меня есть THREE.Scene
с простым кубом. К кубу прилагается CANNON.Body
для физики (представлено в зеленом каркасе).THREE.js Как рассчитать положение поворота на трехмерном круге?
CANNON.Body
смещен от куба несколькими единицами измерения. Для вращения это смещение будет радиус.
Когда я повернуть куб, я хочу CANNON.Body
вращаться вокруг куба на основе угла и радиусом. С правой стороны изображения я повернул куб с углом из 45 градусов (у меня также есть радианы). Однако CANNON.Body
не вращает вокруг куб, только вокруг собственного центра. Мне нужно, чтобы повернуть вокруг куб для всех осей х, у и г.
Есть ли встроенная функция в THREE.js
или я должен использовать для этого свое собственное математическое уравнение? Если да, то что бы это было?
Спасибо!
P.S. Я видел решения для чистого THREE.js
Сцена, где геометрия переведена для управления точкой поворота. Поскольку у меня нет геометрии в моем CANNON.Body
, это будет невозможно.
Одним из способов может быть добавление (в противном случае пустого) 'Object3D' к сцене, но оставить его положение в центре вращения. Добавьте 'CANNON.Body' не к сцене, а к этому' Object3D'. Переместите 'CANNON.Body' так, как вы делали это раньше, чтобы переместить его, и вместо этого поверните' Object3D'. – Leeft
@Leeft Спасибо за предложение. Однако я хочу попробовать и не добавлять ненужные объекты в сцену. Я знаю, что это можно решить математически, я просто не знаю, как применить его к моей ситуации и какие уравнения использовать. Если у вас есть другие предложения, пожалуйста, дайте мне знать! – Nicky
Другие возможные варианты, о которых я могу думать: переместите точку опоры, или [сделайте математику самостоятельно] (http://stackoverflow.com/a/839931/3755747) (там нет встроенной функции, но у THREE.Math есть некоторые 'radToDeg' и' degToRad' помощники). Нет ничего плохого в создании некоторых (в противном случае пустых) 'Object3D', чтобы группировать или смещать вещи в вашей сцене, хотя на самом деле сама сцена по существу является« Object3D », в которой есть несколько« Object3D »в качестве своих детей (например, ваши огни, объекты и т. д.). – Leeft