import vtk
triangle = vtk.vtkTriangle()
triangle.GetPointIds().SetId(0, 0)
triangle.GetPointIds().SetId(1, 1)
triangle.GetPointIds().SetId(2, 2)
cellArray = vtk.vtkCellArray()
cellArray.InsertNextCell(triangle)
points = vtk.vtkPoints()
points.InsertPoint(0, 0.0, 0.0, 0.0)
points.InsertPoint(1, 1.0, 0.0, 0.0)
points.InsertPoint(2, 0.0, 1.0, 0.0)
dataSet = vtk.vtkPolyData()
dataSet.SetPoints(points)
dataSet.SetPolys(cellArray)
polygon = vtk.vtkPolyDataNormals()
polygon.SetInputData(dataSet)
polygon.Update()
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(polygon.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)
renderer.SetBackground(0.0, 0.0, 0.0)
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(renderer)
renWin.SetSize(300, 300)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
renWin.Render()
iren.Start()
可以用鼠标翻转缩放;
首先是用vtkTriangle类生成一个三角形对象,设置点的Id;此时还没有坐标;
然后用vtkCellArray()类生成一个cell数组,把三角形对象加入此数组;
然后创建点数组,设置点的坐标;
然后用vtkPolyData类创建一个数据集,把点数组设置给数据集,把cell数组设置给数据集;到这里就有了三角形的坐标;
然后渲染绘制;