Как показать края фигур в WPF 3D HelixToolkit

Добрый день. Как показать края фигуры в WPF? Я реализую фигуру в WPF, но мне нужно получить каркас фигуры. Я пытался найти какое-либо руководство HelixToolkit, но это не удалось. Можете ли вы дать мне руководство HelixToolkit?

Мой код:

<h:HelixViewport3D ClipToBounds="true">
    <h:DefaultLights/>
    <h:LinesVisual3D Thickness="10">
        <ModelVisual3D>
            <ModelVisual3D.Content>
                <GeometryModel3D>
                    <GeometryModel3D.Geometry>
                        <MeshGeometry3D
                        Positions=" 0,3,3 -3,3,3
                                    -3,0,3 3,0,3
                                    -3,0,-3 -3,3,0"
                        TriangleIndices="   0,1,2 2,3,0 5,0,3
                                            3,4,5 5,4,2 1,5,2
                                            0,5,1 3,2,4"/>
                    </GeometryModel3D.Geometry>
                    <GeometryModel3D.Material>
                        <MaterialGroup>
                            <DiffuseMaterial Brush="GreenYellow" />
                            <SpecularMaterial Brush="WhiteSmoke" SpecularPower="30"></SpecularMaterial>
                        </MaterialGroup>
                    </GeometryModel3D.Material>
                </GeometryModel3D>
            </ModelVisual3D.Content>
            <ModelVisual3D.Transform>
                <Transform3DGroup>
                    <RotateTransform3D>
                        <RotateTransform3D.Rotation>
                            <AxisAngleRotation3D x:Name="RotateHorizontal" Axis="0 1 0" />
                        </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                    <RotateTransform3D>
                        <RotateTransform3D.Rotation>
                            <AxisAngleRotation3D x:Name="RotateVertical" Axis="1 0 0" />
                        </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                </Transform3DGroup>
            </ModelVisual3D.Transform>
        </ModelVisual3D>
    </h:LinesVisual3D>
</h:HelixViewport3D>

0 ответов

Для достижения этой цели нет встроенных функций. Задачу можно разделить на несколько:

  1. Как получить четкую грань вашей модели,
  2. Как рисовать линии с помощью WPF (или Helix).

(1) Чтобы получить их, вам может потребоваться построить топологию вашей сетки -> зная связность треугольников. Я рекомендую структуру данных HalfEdge (если вам интересно, есть и другие, использующие WingEdge).

(2) WPF ничего не предоставляет с этой стороны, Helix предприняла попытку, но я не рекомендую ее... Лучше всего построить небольшой прямоугольник (используя 2 треугольника).

Вот пример того, что он может делать (я использую OpenGL и наложение голубого цвета, не беспокойтесь).

Без острых краев:

С острыми краями темно-синего цвета:

Другие вопросы по тегам