Координаты объекта, движущегося по окружности в пространстве
Как вычислить координаты объекта, движущегося по окружности в трехмерном пространстве, при известных параметрах: нормали к плоскости, начальных координатах объекта, центре окружности и угловой скорости? Код, который у меня есть:
N = np.array([1,1,1]) - нормаль
P = np.array([2,0,-1]) - начальные координаты
w = np.pi / 2 - угловая скорость
R = np.linalg.norm(P - C) - радиус
r = C + R * round(np.cos(w * t),5) * (P-C) / np.linalg.norm(P-C) + R * round(np.sin(w * t),5) * np.cross(N, P-C) / np.linalg.norm(np.cross(N, P-C))
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Получите векторы
A = P-C
B = N x A #cross
Второй вектор перпендикулярен нормали и первоначальному вектору. Нормируйте второй вектор и умножьте его на радиус.
R = norm(A)
B = B/norm(B) * R
Положение от времени
X = C + A*cos(w*t) + B*sin(w*t)