Что такое обычный вариант использования Point4D vs Point3D?Что такое Point4D для WPF 3D?
Используется ли он для обработки специальной геометрии или просто имеет значение скалярного поля вокруг точки или что-то более специализированное?
Что такое обычный вариант использования Point4D vs Point3D?Что такое Point4D для WPF 3D?
Используется ли он для обработки специальной геометрии или просто имеет значение скалярного поля вокруг точки или что-то более специализированное?
Чтобы представить 3D affine transform, где в дополнение к масштабированию и вращению в качестве матричного преобразования может существовать перевод, вам необходимо расширить до 4D точек и увеличенную 4x4 матрицу. (Учтите, что матрица 3х3 не может перевести точку (0, 0, 0) в другое место.)
В WPF Matrix3D структура представляет собой матрицу 4х4, и Point4D является дополненным вектором структурой, вы можете умножить матрица Matrix3D. Расширенные векторы иногда называются «homogeneous 3D coordinates».
Какая разница между Matrix3D.Transform (Point3D) и Matrix3D.Transform (Point4D) ли версия Point3D просто отбрасывает часть перевода аффинного преобразования или внутренне продвигает ее к Point4D, а затем обратно в Point3D? – bradgonesurfing
Вы получаете тот же результат, что и до Point4D, хотя он реализован непосредственно с умножением по компонентам. – Govert
Обратите внимание, что продвижение Point3D to Point4D устанавливает 4-й компонент в 1 не в 0, иначе перевод будет потерян. –