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

找外包做网站不给代码网站建设投标书免费

找外包做网站不给代码,网站建设投标书免费,网站官网设计规范,专门做动漫的网站吗文章目录 VTK中的光照1. vtkLight 的两种类型:位置光照和方向光照2. vtkLight 的常用方法3. 方法命名风格4. vtkProp 的可见性与 vtkLight 的开关 示例 VTK中的光照 vtkLight: 用于定义一个或多个光源。每个光源可以有其颜色、位置、焦点等属性。 vtkActor: 每个vtk…

文章目录

  • VTK中的光照
    • 1. vtkLight 的两种类型:位置光照和方向光照
    • 2. vtkLight 的常用方法
    • 3. 方法命名风格
    • 4. vtkProp 的可见性与 vtkLight 的开关
  • 示例

VTK中的光照

vtkLight: 用于定义一个或多个光源。每个光源可以有其颜色、位置、焦点等属性。
vtkActor: 每个vtkActor对象(代表场景中的一个对象)都有自己的属性,包括材质属性(material properties),这些属性决定了该对象如何响应光。
vtkRenderer: 负责管理场景中的所有元素,包括光源和actor,并且控制着场景的最终渲染。

1. vtkLight 的两种类型:位置光照和方向光照

位置光照 (Positional Light):也称为聚光灯(Spotlight)。光源的位置在渲染场景中的某个具体点。可以指定光源的衰减值、锥角等参数,模拟现实世界中的灯光效果。示例:台灯、手电筒等。方向光照 (Directional Light):光源位于无穷远处,光线被认为是平行的。常用于模拟自然界的太阳光。默认情况下,vtkLight 是方向光照。

关键点: 光源的方向由其位置 (SetPosition) 和焦点 (SetFocalPoint)
的连线决定。如果光源是方向光照,则它的位置可以看作是无穷远,而方向由焦点决定。

2. vtkLight 的常用方法

以下是 vtkLight 提供的一些常用方法及其作用: (1) 设置光照颜色

SetColor(double r, double g, double b):设置光源的颜色,使用 RGB 格式。参数范围通常是 [0.0, 1.0]。示例:light->SetColor(1.0, 0.0, 0.0); 将光源颜色设置为红色。

(2) 设置光源位置

SetPosition(double x, double y, double z):设置光源的位置。对于位置光照,这是光源的具体坐标。对于方向光照,这是光源的方向向量。

(3) 设置焦点

SetFocalPoint(double x, double y, double z):设置光源的焦点。光源的方向是从光源位置指向焦点。

(4) 设置光照强度

SetIntensity(double intensity):设置光源的强度,默认值为 1.0。强度越高,光照越亮。

(5) 打开或关闭光源

SetSwitch(int onOff) / SwitchOn() / SwitchOff():控制光源的开关状态。SetSwitch(1) 或 SwitchOn() 表示打开光源。SetSwitch(0) 或 SwitchOff() 表示关闭光源。GetSwitch() 返回当前光源的开关状态。

3. 方法命名风格

VTK 中的方法命名遵循一定的模式,便于理解和使用。以下是常见的命名风格:

SetXXX() 和 GetXXX():SetXXX() 用于设置某个属性的值。GetXXX() 用于获取某个属性的当前值。

示例

light->SetIntensity(2.0);  // 设置光照强度为 2.0
double intensity = light->GetIntensity();  // 获取当前光照强度

XXXOn() 和 XXXOff():

XXXOn() 等价于 SetXXX(1),表示开启某个属性。
XXXOff() 等价于 SetXXX(0),表示关闭某个属性。

示例

light->SwitchOn();  // 打开光源
light->SwitchOff(); // 关闭光源

SetPositional() 和 GetPositional():

SetPositional(int) 用于设置光源是否为位置光照。SetPositional(1) 表示启用位置光照。SetPositional(0) 表示禁用位置光照(即使用方向光照)。
GetPositional() 返回当前光源是否为位置光照。

示例:

 light->SetPositional(1);  // 启用位置光照
bool isPositional = light->GetPositional();  // 检查是否为位置光照

4. vtkProp 的可见性与 vtkLight 的开关

在 VTK 中,类似的命名风格不仅适用于 vtkLight,还适用于其他类,例如 vtkProp(所有可视化对象的基类)。以下是一些类比:

vtkProp 的可见性控制:SetVisibility(int) / GetVisibility() / VisibilityOn() / VisibilityOff()。

示例:

actor->VisibilityOn();  // 显示对象
actor->VisibilityOff(); // 隐藏对象

vtkLight 的开关控制:

SetSwitch(int) / GetSwitch() / SwitchOn() / SwitchOff()。

示例:

light->SwitchOn();  // 打开光源
light->SwitchOff(); // 关闭光源

示例

#include <iostream>
#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.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 <vtkLight.h>
#include <vtkNamedColors.h>
using namespace std;VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);int main()
{vtkNew<vtkNamedColors> colors;// 创建球体数据源vtkNew<vtkSphereSource> sphereSource;sphereSource->SetCenter(0.0, 0.0, 0.0);sphereSource->SetRadius(1.0);// 映射器vtkNew<vtkPolyDataMapper> mapper;mapper->SetInputConnection(sphereSource->GetOutputPort());// 创建演员vtkNew<vtkActor> actor;actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());// 渲染器vtkNew<vtkRenderer> renderer;renderer->AddActor(actor);renderer->SetBackground(0.0, 1.0, 0.0);// 添加光源vtkNew<vtkLight> light;light->SetPositional(1);  // 设置为位置光照light->SetPosition(1, 1, 1);light->SetFocalPoint(0, 0, 0);light->SetConeAngle(30);light->SetDiffuseColor(colors->GetColor3d("White").GetData());light->SetSpecularColor(colors->GetColor3d("White").GetData());light->SetIntensity(2.0);  // 设置光照强度light->SwitchOn();         // 打开光源//light->SwitchOff();renderer->AddLight(light);// 渲染窗口vtkNew<vtkRenderWindow> renderWindow;renderWindow->AddRenderer(renderer);renderWindow->SetSize(640, 480);renderWindow->SetWindowName("LightingExample");// 渲染窗口交互器vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;renderWindowInteractor->SetRenderWindow(renderWindow);// style风格vtkNew<vtkInteractorStyleTrackballCamera> style;renderWindowInteractor->SetInteractorStyle(style);  // 修正:通过交互器设置样式// 开始渲染renderWindow->Render();renderWindowInteractor->Start();return 0;
}

在这里插入图片描述

http://www.dtcms.com/a/506566.html

相关文章:

  • 南阳网站制作价格女性logo大全图片
  • 昆明pc网站建设电子商务seo是什么
  • 网站开发合同变更平台搭建是什么
  • 专业的网站建设案例百度小说风云榜总榜
  • 梦创义网站建设公司鹤峰网站制作
  • 百度品牌网站建设网站换一个图片怎么做
  • 珠海的网站建设公众平台登录官网
  • 企业网站建设代理城乡建设部网站首页上海
  • 做网站还是小程序模板网官网
  • 垂直网站建设方案网站建设代理平台怎么做
  • 重庆潼南网站建设建设茶网站目的
  • 网站挂服务器后图片不显示服装品牌策划方案
  • 网站首页引导页二维码生成器官网
  • wordpress 网站静态页面去长沙旅游攻略及费用
  • 印尼建设银行网站手机图片生成网页链接
  • 甘肃肃第八建设集团网站视频教学网站开发需求分析
  • 长沙企业建站程序wordpress仿百度搜索主题
  • 长沙住房和城乡建设部网站安徽建设工程信息网官网优秀中项网
  • 网站外包项目青岛网站开发公司
  • 做网站的公司哪里好延庆精神文明建设的门户网站
  • 佛山网站建设推广服务如何在网上推广二维码
  • 在门户网站做产品seo如何自己建设淘宝网站首页
  • 台州做网站哪家好黑龙江建设厅网站官网
  • 网站的设计需要什么电商平台有哪些软件
  • 微网站预览百度知道app
  • 怎么搞到网站做网站从哪方面入门
  • wordpress redis插件优化设计数学
  • html 路径 网站根路径晋江网站设计
  • 太平桥网站建设比较好的室内设计网站
  • 榆林网站优化wordpress页面显示返回json