У меня есть вектор, и я проецирую его на плоскость. Я попытался вычислить прогноз, но обнаружил, что формула неверна.

Вот мой код:
импортировать панд как pd # n — нормализованная нормаль плоскости, а v — вектор n = np.array([0,6, 0,3, -0,7]) v = np.array([-415, 212, 180]) p = v - np.dot(v, n) / (np.linalg.norm(n)**2) * n # массив([-216.23404255, 311.38297872, -51.89361702]) cross_product = np.cross(p, n) # массив([202.4, 182.5, 251.7]) " Если формула работает, проекция «p» на плоскость должна быть перпендикулярна нормали «n». и результат np.cross() должен быть (0,0,0). Однако, как показано выше, перекрестный результат равен ([202.4, 182.5, 251.7]).
Я не знаю, почему эта формула здесь не работает. Кто-нибудь может помочь мне разобраться?