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

建自己的网站做外贸口碑营销的案例及分析

建自己的网站做外贸,口碑营销的案例及分析,南昌做网站哪家公司比较好,想做个网站怎么做文章目录 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/wzjs/491993.html

相关文章:

  • 悟空crm下载厦门seo顾问
  • 设计网站推荐html代码西安seo服务公司
  • php做网站登录界面企业网站seo多少钱
  • 找人做海报在什么网站找白云区新闻
  • 自适应网站建设沈阳无代码免费web开发平台
  • 山东网站建设都有那些百度关键词优化快速排名软件
  • 做游戏的网站有哪些seo推广岗位职责
  • 易语言如何建设网站二级域名和一级域名优化难度
  • 济南专业的设计网站青岛seo排名扣费
  • 沂源做网站企业seo推广
  • 工信部的网站备案信息查询企业培训方案
  • 广州网站建立百度号码认证平台个人号码申诉
  • 做网站不用服务器谷歌seo和百度seo区别
  • 视频网站怎么做的国内it培训机构排名
  • 网站建设质量保证网站建设运营
  • 关岭县建设局网站百度seo运营工作内容
  • 优化的含义搜索引擎排名优化技术
  • wordpress 小说站seo研究中心官网
  • 天津建委网站 官网网络广告设计
  • 域名备案成功怎么做网站seo排名优化工具
  • 专业网站建设加盟合作steam交易链接怎么看
  • wps网站超链接怎么做厦门seo优化外包公司
  • 购物网站做兼职免费网站seo
  • 手机网站绑定seo岗位职责
  • php响应式网站模板电商怎么注册开店
  • 常熟有没有做阿里巴巴网站上海seo公司排名榜
  • wordpress模板网站导航友情链接查询结果
  • 摄影网页设计案例乐陵市seo关键词优化
  • 宣武网站开发产品推广的渠道有哪些
  • 通辽网站建设培训小说推文推广平台