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

网站工程师平均工资移动互联网开发实验报告

网站工程师平均工资,移动互联网开发实验报告,知名的食品行业网站开发,模板建网站费用文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 这个例子展示了如何使用vtkVRMLImporter获得wrl文件中的VRML对象。 定义:VRML 是一种用于在互联网上创建…

文章目录

    • 1. 概述
    • 2. CMake链接VTK
    • 3. main.cpp文件
    • 4. 演示效果


更多精彩内容
👉内容导航 👈
👉VTK开发 👈

1. 概述

这个例子展示了如何使用vtkVRMLImporter获得wrl文件中的VRML对象。

  • 定义:VRML 是一种用于在互联网上创建和展示 交互式3D场景 的标准化编程语言。它通过文本文件描述三维对象的几何形状、材质、光照、动画及交互行为。

  • 发展背景:诞生于1994年,旨在为早期Web提供3D图形支持,是 Web 3D图形 的早期标准。后续被更先进的 X3D(Extensible 3D) 标准取代。

  • 交互与动画:通过 传感器(Sensors)插值器(Interpolators) 实现用户交互(如点击触发动作)和动态效果(如物体旋转)。

  • 网络集成:支持超链接到其他VRML文件或网页,实现跨场景跳转。

  • 关键特性

    • 跨平台性:独立于操作系统和硬件,依赖浏览器插件运行。
    • 文本格式:文件轻量(.wrl 扩展名),易于网络传输和编辑。
    • 交互性:支持用户与3D对象的实时互动(如拖拽、点击)。
    • 可扩展性:可通过原型(Prototype)定义自定义节点。

演示文件下载地址:teapot.wrl

环境说明
系统ubuntu22.04、windows11
cmake3.22、3.25
Qt5.14.2
编译器g++11.4、msvc2017
VTK9.4.1

2. CMake链接VTK

cmake_minimum_required(VERSION 3.20 FATAL_ERROR) # 设置CMake最低版本
project(vtk2) # 设置项目名称
# 查找VTK库
find_package(VTK COMPONENTS 
CommonColor
CommonCore
CommonTransforms
IOImport
InteractionStyle
RenderingAnnotation
RenderingContextOpenGL2
RenderingCore
RenderingFreeType
RenderingGL2PSOpenGL2
RenderingOpenGL2
)
if(NOT VTK_FOUND)
message("VTK not found")
return()
endif()add_executable(vtk2 main.cpp) # 添加可执行文件target_link_libraries(vtk2 PRIVATE ${VTK_LIBRARIES}) # 链接VTK库
vtk_module_autoinit(TARGETS vtk2 MODULES ${VTK_LIBRARIES}) # 初始化VTK模块

3. main.cpp文件

/********************************************************************************
* 文件名:   main.cpp
* 创建时间: 2025-03-15 22:31:23
* 开发者:   MHF
* 邮箱:     1603291350@qq.com
* 功能:     
*********************************************************************************/
#include <vtkAxesActor.h>
#include <vtkCamera.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkTransform.h>
#include <vtkVRMLImporter.h>
#include <vtkVersion.h>using namespace std;int main()
{vtkNew<vtkNamedColors> colors;string filename = "E:/Code/C++/vtk1/bin/teapot.wrl";string actorName = "teapot"; // 茶壶名称, teapot.wrl 文件中【DEF teapot】的名称,大小写敏感vtkNew<vtkRenderer> renderer; // 创建渲染器vtkNew<vtkRenderWindow> renderWindow; // 创建渲染窗口renderWindow->AddRenderer(renderer); // 将渲染器添加到渲染窗口renderWindow->SetSize(640, 480); // 设置渲染窗口大小renderWindow->SetWindowName("VRMLImporter"); // 设置渲染窗口名称vtkNew<vtkRenderWindowInteractor> renderWindowInteractor; // 创建渲染窗口交互器renderWindowInteractor->SetRenderWindow(renderWindow); // 将渲染窗口添加到渲染窗口交互器vtkNew<vtkVRMLImporter> importer; // 创建VRML导入器importer->SetFileName(filename.c_str()); // 设置导入文件名importer->Update(); // 更新导入器importer->SetRenderWindow(renderWindow); // 设置渲染窗口importer->Update();// 该函数用于从导入的 VRML(Virtual Reality Modeling Language)文件中获取具有指定名称的 VRML DEF 对象。vtkObject* defActor = importer->GetVRMLDEFObject(actorName.c_str()); // 获取VRML对象if(!defActor){importer->Print(cout); // 打印导入器信息return EXIT_FAILURE;}vtkActor* actor = static_cast<vtkActor*>(defActor); // 获取VRML对象actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData()); // 设置颜色actor->GetProperty()->SetRepresentationToWireframe(); // 设置表示为线框vtkNew<vtkTransform> transform; // 创建变换transform->Translate(actor->GetCenter()[0], actor->GetCenter()[1], actor->GetCenter()[2]); // 设置平移vtkNew<vtkAxesActor> axes; // 创建坐标轴double len[3];len[0] = (actor->GetBounds()[1] - actor->GetBounds()[0]) * 1.5; len[1] = (actor->GetBounds()[3] - actor->GetBounds()[2]) * 1.5; len[2] = (actor->GetBounds()[5] - actor->GetBounds()[4]) * 1.5;axes->SetTotalLength(len); // 设置坐标轴长度axes->SetUserTransform(transform); // 设置用户变换renderer->AddActor(axes); // 将坐标轴添加到渲染器renderer->SetBackground(colors->GetColor3d("SlateGray").GetData()); // 设置背景颜色renderWindow->Render(); // 渲染窗口renderer->GetActiveCamera()->SetPosition(-14.8296, 18.1304, 12.3352); // 设置相机位置renderer->GetActiveCamera()->SetFocalPoint(2.09905, 0.0832915, 2.47961); // 设置焦点renderer->GetActiveCamera()->SetViewUp(0.262918, -0.260671, 0.928937); // 设置视图向上renderer->GetActiveCamera()->SetDistance(26.6348); // 设置距离renderer->ResetCameraClippingRange(); // 重置相机裁剪范围renderWindow->Render(); // 渲染窗口renderWindowInteractor->Start(); // 开始渲染窗口交互return 0;
}

4. 演示效果

在这里插入图片描述



http://www.dtcms.com/wzjs/548807.html

相关文章:

  • 网站怎么制作商城北京装修公司排名十强
  • 周口网站建设73data公司名称注册规则
  • 网站收录怎么做仿站网站开发
  • 网站的销售怎么做建设工程施工合同范文
  • 商城网站入驻系统大连工程信息网
  • 河南企业网站优化四川省建设厅注册管理中心网站首页
  • 模板网站搭建游戏开发代码
  • 新手怎么学习网站建设做网站1008做网站 - 百度
  • 织梦网站搬迁网站开发架设
  • 沈阳网站制作机构上海vi设计公司有哪些
  • 有没有专门做平铺素材的网站长沙h5手机网站制作
  • 宁波cms模板建站做网站 橙色怎么搭配
  • 重庆建站费用上海网站设计培训班
  • 国外哪些做问卷赚钱的网站建设项目所在地公共媒体网站
  • 公司网站应达到的功能关键词的选取原则有
  • html 网站首页陕西省建设监理协会网站
  • 中小网站建设都有哪些方案天元建设集团有限公司是国企还是央企
  • 济南想做网站如何自己搭建一个物联网平台
  • 太原网站建设推广服务广州越秀区风险等级
  • 江门网站制作推广广告公司取名字大全免费查询
  • 博物建设公司网站江门网站排名优化
  • 成都建站费用做网站多少
  • 房产网站设计公司wordpress指定ip登陆
  • 网站建设主页济南建站
  • 实力网站建设电话网站建设丨找王科杰效果好
  • 电商网站建设前的市场分析内容如何代做网站
  • 网站空间要多大长沙影楼网站建设
  • 烟台网站推广ppt模板免费下载百度云
  • 网站外链应该怎么做网站开发员的工资
  • 厦门网站建设系统网站建设 概念