gpt4 book ai didi

wpf - 如何将 MeshElement3D 显示为线框?

转载 作者:行者123 更新时间:2023-12-04 15:10:33 28 4
gpt4 key购买 nike

我想显示任何 MeshElement3D (例如 BoxVisual3d)在 helix-toolkit 中作为线框。如何实现?

编辑:

感谢 Erno de Weerd 的回答,我能够编写以下代码

  • 扩展 BoxVisual3D 的类
    public class GeometryBoxVisual3D : BoxVisual3D
    {

    public MeshGeometry3D Geometry()
    {
    return Tessellate();
    }
    }
  • 将 box 的实例添加到视口(viewport):
        GeometryBoxVisual3D box = new GeometryBoxVisual3D();
    box.Fill = new SolidColorBrush(Colors.Red);
    Viewport3D.Children.Add(box);
    MeshGeometry3D geometry3 = box.Geometry();
    LinesVisual3D lines = new LinesVisual3D();
    lines.Thickness = 3;
    lines.Points = geometry3.Positions;
    lines.Transform = new TranslateTransform3D(3,1,1);
    Viewport3D.Children.Add(lines);

  • 这将导致以下显示:

    enter image description here

    如果我隐藏原始框并将 LinesVisual3D 放在框的顶部,我可以将线框显示为好像它是原始对象一样,但它仍然缺少侧面的边缘。

    最佳答案

    调用 MeshElement3D.Tesselate()你可以得到MeshGeometry3D (网)。

    接下来创建一个LinesVisual3D目的。

    将网格的点复制到 LinesVisual3D 的点.

    这将创建内部网格(参见来源:LinesVisual3D.cs in helix toolkit)

    最后,确保设置 LinesVisual3D 的厚度。并将其添加到场景中。

    关于wpf - 如何将 MeshElement3D 显示为线框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28596130/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com