当前位置: 首页 > news >正文

6.VTK 颜色

文章目录

  • 概念
  • RGB示例
  • HSV示例

概念

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());// ActorvtkNew<vtkActor> actor;actor->SetMapper(mapper);// 使用RGB颜色系统设置Actor的颜色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();// Lookup TablevtkNew<vtkLookupTable> lookupTable;lookupTable->SetHueRange(0.667, 0.0); // 设置色相范围从蓝色到红色lookupTable->Build();// 映射器vtkNew<vtkPolyDataMapper> mapper;mapper->SetInputConnection(sphereSource->GetOutputPort());mapper->SetLookupTable(lookupTable);mapper->UseLookupTableScalarRangeOn();// ActorvtkNew<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;}
http://www.xdnf.cn/news/24283.html

相关文章:

  • 驱动移植【简略版】
  • 从零开始学Python游戏编程30-类2
  • [Java · 初窥门径] Java 语言初识
  • C++动态分配内存知识点!
  • 锁(Mutex)、信号量(Semaphore)与条件量(Condition Variable)
  • 网络编程2
  • 第八周作业
  • alertManager部署安装、告警规则配置详解及告警消息推送
  • 工厂方法模式详解及在自动驾驶场景代码示例(c++代码实现)
  • Linux根据 PID 进行性能分析
  • 三格电子——PROFIBUS DP设备长距离传输和干扰问题解决办法
  • ffprobe 输出 HEVC 码流 Level:标准的 “错位” 与分析的 “归位”
  • javaweb-servlet-继承关系以及service方法、servlet生命周期
  • LabelImg打标工具的下载和使用——YOLO格式篇
  • open CasCade下载
  • RVOS的任务调度优化
  • OJ笔试强训_1至24天
  • `peft`(Parameter-Efficient Fine-Tuning:高效微调)是什么
  • 接口测试的原则、用例与流程
  • Git学习之路(Updating)
  • 《软件设计师》复习笔记(11.3)——需求获取、分析、定义、验证、管理
  • 欧拉系统升级openssh 9.7p1
  • 【AI】实现中文文章摘要的AI模型
  • 【失败】Gnome将默认终端设置为 Kitty
  • 如何在Linux系统中部署C++ Web应用
  • Sa-Token使用指南
  • 1 Celery 简介
  • cpolar 内网穿透 实现公网可以访问本机
  • top100 (6-10)
  • 字符串循环拼接,不能用 + 连接, 需要用 StringBuilder 代替