我想在 helix-toolkit 中将任何MeshElement3D(例如 BoxVisual3d)显示为线框。如何实现?
编辑:
感谢 Erno de Weerd 的回答,我能够编写以下代码
扩展 BoxVisual3D 的类
public class GeometryBoxVisual3D : BoxVisual3D { public MeshGeometry3D Geometry() { return Tessellate(); } }
将 box 的实例添加到视口:
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);
这将导致以下显示:
如果我隐藏原始框并将 LinesVisual3D 放置在框顶部,我可以让线框显示为好像它是原始对象,但它仍然缺少侧面的边缘。