Координаты объекта, движущегося по окружности в пространстве

Как вычислить координаты объекта, движущегося по окружности в трехмерном пространстве, при известных параметрах: нормали к плоскости, начальных координатах объекта, центре окружности и угловой скорости? Код, который у меня есть:

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)
→ Ссылка