Найти точку на сфере заданного радиуса, центра и трехмерного положения - PullRequest
0 голосов
/ 19 октября 2019

В единстве я построил игру, в которой я могу размещать модели с помощью курсора мыши (перетаскивая их на сцену). Я хочу сохранить единое расстояние между моделями, т. Е. Каждая модель будет на расстоянии 10 единиц от модели до нее.

Если бы это была проблема 2D, это было бы легко, просто рассчитавугол между центром и текущей позицией мыши и размещением модели с x = r cos (a), y = r sin (a).

Но я не уверен, как рассчитатьэто в 3D. Насколько я знаю, есть еще один угол, который мне нужно рассчитать, но как я могу это сделать?

У меня есть положение в трехмерном пространстве, центральная точка и желаемое расстояние, и я хочу получить этоновая позиция, которая находится в направлении исходной точки, но на самой сфере (исходная позиция может быть в / из сферы)

Извините за мой плохой английский, но я надеюсь, что было достаточно ясно, чтомоя проблема

1 Ответ

2 голосов
/ 19 октября 2019

Я не понимаю, как вы получите координаты точки мыши в 3D, но если центр сферы (Xc, Yc, Zc), а ваша точка (X, Y, Z), спроецированная точка будет

(Xc + a (X - Xc), Yc + a (Y - Yc), Zc + a (Z - Zc))

где

a = R / √((X - Xc)² + (Y - Yc)² + (Z - Zc)²).

Вам не нужно использовать углы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...