vtk中文字分为二维和三维。
- 二维文字
二维通常在窗口顶层绘制,相当于另一图层。用的是vtkTextActor,属于vtkActor2D。其中位置和大小均为相对窗口起始点(0,0)的绝对值,估计是像素。
vtkTextActor textActor = new vtkTextActor();
textActor.GetTextProperty().SetFontSize(10); //设置字体大小
textActor.SetPosition(100, 100);
textActor.SetInput("12345"); //设置文字内容
textActor.GetTextProperty().SetColor(1.0, 0.0, 0.0); //设置文字颜色
render.AddActor2D(textActor); //加入渲染引擎
- 三维文字
主要用的是vtkVectorText来输入文本内容;vtkFollower创建Actor; vtkPolyDataMapper就是常规的3D Actor用的。
vtkFollower textActor = vtkFollower.New();
textActor.SetPosition(b.top_xyz[0], b.top_xyz[1]+5, b.top_xyz[2]+1);
//注意这里使相对于上面的位置的,默认为0,0,0
textActor.SetOrigin(0, -5, 0);
textActor.RotateZ(90);
textActor.SetScale(0.2,0.2,0.2);
vtkVectorText aText = vtkVectorText.New();
aText.SetText("R="+b.radius.ToString()+"\r\n"+"ID="+b.ID.ToString());
vtkPolyDataMapper textMapper = vtkPolyDataMapper.New();
textMapper.SetInputConnection(aText.GetOutputPort());
textActor.SetMapper(textMapper);
textActor.GetProperty().SetColor(0.5,0.5,0.44); //灰色
render.AddActor(textActor);