3D图像处理时,为了让用户理解某个部件的用法,通常会在部件的旁边标注相应的文本,作为注释来;文本注释对视觉理解方面是不可或缺的, 在 VTK 中提供了两种文本注释方法:
- 1,2D 文本注释,这种方式的特点:文本是贴在图像渲染窗口上,视觉效果文本在3D渲染图象的前面,呈现遮挡状态;
- 2,3D文本注释,文本作为 3D Polydata 数据类型创建, 可作为3D集合对象展示,可旋转、可缩放;
2D 文本注释
对于第一种,主要用到 2D actors(vtkActor2D 和它的子类 例如 vtkScaledTextActor) 、Mappers(vtkMapper 2D 和它的子类 vtkTextMapper),2DTextActor 和 Mapper 与 3D文本注释相似,两者最大区别,一个是文本以2D文本贴到窗口上,位置固定不可动;一种是文本以3D对象创建,可旋转、可缩放(绘制窗口设置了交互效果);
下面这个例子中,创建了两个对象:
- 1,Sphere 3D图像,以
vtkLODActor
类创建,作为3D对象; - 2, Text 文本,以
vtkTextActor
类创建,用于作为注释文本;
绘制时,把 两个 Actor
全部加入 Renderer
(绘制器)中;这里文本属性用到 vtkTextProperty
类,用于设置文本走向(垂直、水平)、颜色、坐标及文字类型(大小、字体)等;
#include<vtkSphereSource.h>
#include<vtkLODActor.h>
#include<vtkTextActor.h>
#include<vtkPolyDataMapper.h>
#include<vtkRenderer.h>
#include<vtkRenderWindow.h>
#include<vtkRenderWindowInteractor.h>
#inclu