概念
RGB颜色系统:通过红(R)、绿(G)、蓝(B)三个颜色分量的组合来定义颜色。每个分量的取值范围是0到1,其中(0, 0, 0)代表黑色,而(1, 1, 1)代表白色。可以使用vtkProperty::SetColor(r, g, b)方法为Actor设置颜色。HSV颜色系统:基于色相(Hue)、饱和度(Saturation)和亮度(Value)三个属性来定义颜色。HSV颜色模型更接近人类对颜色的感知方式。色相表示颜色的类型(如红色、绿色等),饱和度表示颜色的纯度,亮度则控制颜色的明暗程度。这三个属性的取值同样在0到1之间。HSV颜色系统的设置可以通过vtkLookupTable类来实现。
RGB示例
#include <istream>
#include <vtkSmartPointer.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkCamera.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkProperty.h>
#include <vtkAutoInit.h>
#include <vtkSphereSource.h>
#include <vtkLineSource.h>
#include <vtkPlaneSource.h>
#include <vtkNamedColors.h>VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);using namespace std;int main()
{vtkNew<vtkNamedColors> colors;vtkNew<vtkSphereSource> sphereSource;sphereSource->Update();vtkNew<vtkPolyDataMapper> mapper;mapper->SetInputConnection(sphereSource->GetOutputPort());vtkNew<vtkActor> actor;actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("Tomato").GetData());vtkNew<vtkRenderer> renderer;renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());vtkNew<vtkRenderWindow> renderWindow;renderWindow->AddRenderer(renderer);renderWindow->SetSize(640, 480);vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;renderWindowInteractor->SetRenderWindow(renderWindow);renderWindow->Render();renderWindowInteractor->Start();return 0;
}

HSV示例

#include <vtkLineSource.h>
#include <vtkPlaneSource.h>
#include <vtkNamedColors.h>
#include <vtkLookupTable.h>VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);using namespace std;int main()
{vtkNew<vtkNamedColors> colors;vtkNew<vtkSphereSource> sphereSource;sphereSource->Update();vtkNew<vtkLookupTable> lookupTable;lookupTable->SetHueRange(0.667, 0.0); lookupTable->Build();vtkNew<vtkPolyDataMapper> mapper;mapper->SetInputConnection(sphereSource->GetOutputPort());mapper->SetLookupTable(lookupTable);mapper->UseLookupTableScalarRangeOn();vtkNew<vtkActor> actor;actor->SetMapper(mapper);vtkNew<vtkRenderer> renderer;renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());vtkNew<vtkRenderWindow> renderWindow;renderWindow->AddRenderer(renderer);renderWindow->SetSize(640, 480);vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;renderWindowInteractor->SetRenderWindow(renderWindow);renderWindow->Render();renderWindowInteractor->Start();return EXIT_SUCCESS;}