1、概述
颜色是Actor重要的属性之一。VTK采用RGB和HSV两种颜色系统来描述颜色。
RGB颜色系统是由三个颜色分量:
R(红色)、G(绿色)、B(蓝色)的组合表示。取值范围0~1。(0,0,0)表示黑色,(1,1,1)表示白色。
vtkProperty::SetColor(r,g,b)采用的就是 RGB颜色系统设置颜色属性值。
HSV颜色系统是由三个分量来决定颜色,分别是:
色相(Hue),表示颜色的基本属性,通常据说的颜色名称,如红色、黄色等;
饱和度(Saturation),是指颜色的纯度,其值越高则越纯;
值(Value,也就是上强度Intensity或者亮度Bright),值为0通常表示的是黑色,值为1表示的最亮的颜色。
取值范围0~1。类vtkLoopupTable提供了HSV颜色系统设置的方法。
2、代码
cs
vtkCylinderSource cylinderSource = vtkCylinderSource.New();
cylinderSource.SetHeight(3.0);
cylinderSource.SetRadius(1.0);
cylinderSource.SetResolution(100);
vtkPolyDataMapper polyDataMapper = vtkPolyDataMapper.New();
polyDataMapper.SetInputConnection(cylinderSource.GetOutputPort());
vtkActor actor = vtkActor.New();
actor.SetMapper(polyDataMapper);
vtkRenderer renderer = vtkRenderer.New();
renderer.AddActor(actor);
renderer.SetBackground(0.3, 0.6, 0.7);
vtkLight myLigth = vtkLight.New();
myLigth.SetColor(0, 1, 1);
myLigth.SetPosition(0, 0, 1);
double[] infos = renderer.GetActiveCamera().GetFocalPoint();
myLigth.SetFocalPoint(infos[0], infos[1], infos[2]);
renderer.AddLight(myLigth);
vtkRenderWindow renWin = renderWindowControl.RenderWindow;
renWin.AddRenderer(renderer);
renWin.Render();