C# VTK 交互式小坐标轴盒

点击坐标轴盒的每个面可以切换视角。

C# VTK 交互式小坐标轴盒_第1张图片

这个坐标系盒子是由6个plane 和 6个文本封装的,鼠标交互时判断是点击哪一个plane。vtk 原本有左下角坐标系的类但是无法实现自定义的形状且自定义交互,因此在查阅了vtk相关的源代码后发现,小坐标实际上是一个在场景Renderer 上面叠加了一个小的Renderer。

1.生成盒子模型添加到坐标系 Render

  public vtkActor DrawPlane(Point3d normal, Point3d center, Point3d orgin, Point3d p1, Point3d p2, Point3d color)
  {
      vtkPlaneSource plane = new vtkPlaneSource();
      plane.SetNormal(normal.X, normal.Y, normal.Z);
      plane.SetCenter(center.X, center.Y, center.Z);
      plane.SetOrigin(orgin.X, orgin.Y, orgin.Z);
      plane.SetPoint1(p1.X, p1.Y, p1.Z);
      plane.SetPoint2(p2.X, p2.Y, p2.Z);
      plane.Update();

      vtkPolyDataMapper mapper = new vtkPolyDataMapper();
      mapper.SetInputData(plane.GetOutput());
      mapper.Update();

      vtkActor actor = new vtkActor(

你可能感兴趣的:(C#,VTK,Winform/WPF,c#,3d)