VTK画图,禁止鼠标拖动时滚动图形,鼠标滚轮滚动时放大/缩小图形的方法。
renderLine.InteractiveOff();
下面是VTK画折线的代码
// Create five points
double[,] p = new double[,] {
{ 0.0, 0.0, 0.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 },
{ 0.0, 1.0, 2.0 },
{ 0.0, 3.0, 3.0 }
};
// Create the points
vtkPoints points = vtkPoints.New();
for (int i = 0; i < 5; i++)
points.InsertNextPoint(p[i, 0], p[i, 1], p[i, 2]);
vtkPolyLine polyLine = vtkPolyLine.New();
polyLine.GetPointIds().SetNumberOfIds(5);
for (int i = 0; i < 5; i++)
polyLine.GetPointIds().SetId(i, i);
// Create a cell array to store the lines in and add the lines to it
vtkCellArray cells = vtkCellArray.New();
cells.InsertNextCell(polyLine);
vtkPolyData polyData = vtkPolyData.New();
polyData.SetPoints(points);
polyData.SetLines(cells);
vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
mapper.SetInput(polyData);
vtkActor actor = vtkActor.New();
actor.SetMapper(mapper);
//vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow;
//vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer();
//vtkRenderer renderLine = vtkRenderer.New();
//renderLine.SetBackground(0.2, 0.3, 0.4);
renderLine.AddActor(actor);
renderLine.ResetCamera();
vtkCamera camera = renderLine.GetActiveCamera();
camera.Zoom(1.5);
//渲染窗口添加网格渲染器
renderWindow.AddRenderer(renderLine);
//渲染窗口开启双缓冲
renderWindow.SetDoubleBuffer(1);
renderWindow.Render();
原文:https://www.cnblogs.com/yahb/p/11345047.html