0

因此,我使用http://3dtools.codeplex.com/提供的 ScreenSpaceLines3D 类绘制了一堆线条

我可以通过定义它们来在我的视口中画线

Point3D point0 = new Point3D(0, 0, 0);    
Point3D point1 = new Point3D(5, 5, 0);    
Point3D point2 = new Point3D(5, 5.5, 0);

在 button_click 方法中,基本上画了一堆像

ScreenSpaceLines3D wireframe = new ScreenSpaceLines3D();    
wireframe.Points.Add(point0);    
wireframe.Points.Add(point1);    
wireframe.Points.Add(point2);    
wireframe.Color = Colors.LightBlue;    
wireframe.Thickness = 5;    
this.mainViewport.Children.Add(wireframe);

我还添加了一个point1.Z += 2;以查看每次单击后行的变化。

我只想看到同一组线条在移动,但每次点击后都会绘制新的线条组。我只需要用一组更新的点刷新/重绘同一组。我尝试使用InvalidateVisual();InvalidateArrange();没有奏效。

请指教!!

4

1 回答 1

0

没有无效功能。您必须清除 ScreenSpaceLine3d 点,然后更新这些点。

public MainWindow()  
{  
    ScreenSpaceLines3D wireframe = new ScreenSpaceLines3D();  
    wireframe.Color = Colors.LightBlue;  
    wireframe.Thickness = 5;   
    this.mainViewport.Children.Add(wireframe);  
}

public void CustomInvalidate( Point3DCollection point)  
{  
    if (wireframe!= null)  
            {  
                wireframe.Points.Clear();  
            }  
    wireframe.Points.Add(point[0]);    
    wireframe.Points.Add(point[1]);    
    wireframe.Points.Add(point[2]);  
}
于 2014-05-21T09:56:13.023 回答