2) Используя plane.VecX, VecY, normal и Origin собрать TransformМожно пример?
3) найти Transform.Inverse.OfPoint искомой точки, обнулить координату Z - это точка проекции на плоскость, величина Z - расстояние до плоскости, при том со знаком, указывающим, в каком направлении от плоскости находится точка
я пробовал использоватьВ том коде есть ошибка. Смотрите код в оригинальной статье - https://thebuildingcoder.typepad.com/blog/2014/09/planes-projections-and-picking-points.html. Там уже исправлено
http://adn-cis.org/ploskosti-proekczii-i-vyibrannyie-tochki.html
то что то не выходит спроецировать точку на вертикальную плоскость, точка как будто "не доходит" до этой плоскости. Может есть какой другой путь..
В том коде есть ошибка. Смотрите код в оригинальной статье - https://thebuildingcoder.typepad.com/blog/2014/09/planes-projections-and-picking-points.html. Там уже исправлено
В том коде есть ошибка. Смотрите код в оригинальной статье - https://thebuildingcoder.typepad.com/blog/2014/09/planes-projections-and-picking-points.html. Там уже исправленоСпасибо, теперь все ок
Скалярное произведение в любом случае нам даст модуль числа....Нет: https://ru.wikipedia.org/wiki/Скалярное_произведение (https://ru.wikipedia.org/wiki/Скалярное_произведение)
в формуле (https://farm8.staticflickr.com/7803/47458321811_32903f826c_o.png) знак определяется только косинусом угла (нормы векторов всегда положительны). Поэтому скалярное произведение > 0, если угол между векторами острый, и < 0, если угол между векторами тупой.
в формуле знак определяется только косинусом угла (нормы векторов всегда положительны). Поэтому скалярное произведение > 0, если угол между векторами острый, и < 0, если угол между векторами тупой.В таком случае расстояние dist для pt(XYZ) будет положительным , т.е смещение точки производится по направлению нормали плоскости
В таком случае расстояние dist для pt(XYZ) будет положительным , а для pt2(XYZ) отрицательным ...С точностью до наоборот...
Смотрите - угол между вектором C и Plane.Normal - острый:И что из этого следует? У тебя вектор C смотрит в противоположную сторону. Должно быть так: