Как нарисовать ромб в wpf GeometryModel3D?

#c# #wpf #xaml #3d

#c# #wpf #xaml #3D

Вопрос:

Я не могу нарисовать правильную форму ромба.

         0,1,0
    -1,0,-1 1,0,-1
    -1,0, 1 1,0, 1
        0,-1,0
  

Это мой подход к верхней точке ромба (0 1 0) и нижней точке (0 -1 0) и квадрату между ними при y = 0. а затем соединить их все с TriangleIndices .

Мой код:

 <MeshGeometry3D x:Key="diamond"
                                Positions="
                                       0, 1, 0  
                                       -1, 0,-1    1, 0,-1
                                       -1, 0, 1    1, 0, 1
                                       -1, 0,-1   -1, 0, 1
                                        1, 0, 1    1, 0,-1
                                       0,-1, 0  
                                      "
                                TriangleIndices="
                                       0  1  2     0  3  4
                                       0  5  6     0  7  8
                                       9  1  2     9  3  4
                                       9  5  6     9  7  8
                                       1  2  3     4  5  6
                                       7  8  9     1  2  5
                                       5  6  8     1  2  4
                                       1  2  6     1  2  8
                                       5  6  7     1  5  6
                                       1  3  5     0  2  3
                                       " />
  

Это мой окончательный результат для изображения

введите описание изображения здесь

Как вы можете видеть, не все треугольники нарисованы, и я не знаю почему. Я знаю, что добавил много TriangleIndices в свойствах XAML, но все еще нет полного ромба.

Ответ №1:

Итак, после многих попыток это сработало. Но я все еще не понимаю одной вещи

Является ли 0 1 2 TriangleIndices таким же, как 0 2 1?

 <MeshGeometry3D x:Key="Diamond"
                                Positions="
                                       0, 1, 0  
                                      -1, 0,-1    1, 0,-1
                                      -1, 0, 1    1, 0, 1
                                       0,-1, 0  
                                      "
                                TriangleIndices="
                                       0 1 2, 0 3 1, 0 4 3, 0 2 4, 
                                       5 2 1, 5 1 3, 5 3 4, 5 4 2
                                       " />