Нарисуйте нормали поверхности на 3D-модели с помощью WPF и XAML

В этом примере показано, как рисовать поверхностные нормали. Он использует следующий код для создания сегментов объекта MeshGeometry3D, показывающих нормали поверхности для существующего объекта MeshGeometry3D.

Метод просто создает объект MeshGeometry3D, а затем пересекает треугольники исходной сетки, вызывая следующий метод AddTriangleNormal для каждого.

Этот метод вызывает метод FindTriangleNormal, описанный в скором времени, чтобы найти вектор, нормальный к поверхности треугольника. Он усредняет углы треугольника, чтобы найти его «центр». (Существуют другие определения центра треугольника, но это легко и, вероятно, достаточно хорошо.) Затем он добавляет нормальный вектор в «центр», чтобы получить другую конечную точку для нормальный сегмент. Наконец, он вызывает AddSegment, чтобы добавить сегмент, показывающий нормальный. (См. Нарисуйте улучшенные сегменты 3D-линий, используя WPF и C# для получения информации о методе AddSegment.)

Следующий код показывает метод FindTriangleNormal.

Этот метод создает векторы, представляющие первый и второй ребра треугольника. Затем он использует Vector3D.CrossProduct, чтобы найти вектор, перпендикулярный двум краевым векторам. Если треугольник ориентирован наружу, то вектор указывает во внешнем направлении.

Источник: http://csharphelper.com/blog/2014/10/draw-surface-normals-on-a-3d-model-using-wpf-and-xaml/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *