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

什么网站可以做软件有哪些内容百度网站服务器

什么网站可以做软件有哪些内容,百度网站服务器,学校网站怎么查询录取,企业如何进行网站推广文章目录 处理OBJ文件Jet渲染风格Viridis渲染风格CoolToWarm渲染风格Grayscale渲染风格Rainbow渲染风格切换风格按钮槽函数(可优化)相关代码github链接 将 .obj 数据进行 Elevation 着色并可视化渲染的完整流程 和.ply文件处理方式一样 处理OBJ文件 vo…

文章目录

  • 处理OBJ文件
  • Jet渲染风格
  • Viridis渲染风格
  • CoolToWarm渲染风格
  • Grayscale渲染风格
  • Rainbow渲染风格
  • 切换风格按钮槽函数(可优化)
  • 相关代码github链接

.obj 数据进行 Elevation 着色并可视化渲染的完整流程

和.ply文件处理方式一样

处理OBJ文件


void ThreeDimensionalDisplayPage::loadObjFile(vtkSmartPointer<vtkPolyData> _poly_data)
{renderer_->RemoveAllViewProps();renderer_->SetBackground(1.0, 1.0, 1.0); // 白色背景// 获取边界和中心double bounds[6];_poly_data->GetBounds(bounds);double center[3] = {(bounds[0] + bounds[1]) / 2.0,(bounds[2] + bounds[3]) / 2.0,(bounds[4] + bounds[5]) / 2.0};// Elevation Filter 按 Z 值添加标量vtkNew<vtkElevationFilter> elevationFilter;elevationFilter->SetInputData(_poly_data);elevationFilter->SetLowPoint(0, 0, bounds[4]);  // 最低ZelevationFilter->SetHighPoint(0, 0, bounds[5]); // 最高ZelevationFilter->Update();// 获取标量范围double scalarRange[2];elevationFilter->GetOutput()->GetScalarRange(scalarRange);vtkSmartPointer<vtkLookupTable> colorLookupTable = createJetLookupTable(scalarRange[0], scalarRange[1]);// 映射器vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(elevationFilter->GetOutputPort());mapper->SetScalarRange(scalarRange);mapper->SetLookupTable(colorLookupTable);mapper->SetColorModeToMapScalars();mapper->ScalarVisibilityOn();// 面ActorsurfaceActor_ = vtkSmartPointer<vtkActor>::New();surfaceActor_->SetMapper(mapper);surfaceActor_->GetProperty()->SetOpacity(1.0);renderer_->AddActor(surfaceActor_);surfaceActor_->SetVisibility(is_surface_visible_);// 线框ActorwireframeActor_ = vtkSmartPointer<vtkActor>::New();wireframeActor_->SetMapper(mapper);wireframeActor_->GetProperty()->SetRepresentationToWireframe();wireframeActor_->GetProperty()->SetColor(0.2, 0.2, 0.2);wireframeActor_->GetProperty()->SetLineWidth(1.0);renderer_->AddActor(wireframeActor_);wireframeActor_->SetVisibility(is_wireframe_visible_);// 点ActorpointsActor_ = vtkSmartPointer<vtkActor>::New();pointsActor_->SetMapper(mapper);pointsActor_->GetProperty()->SetRepresentationToPoints();pointsActor_->GetProperty()->SetPointSize(6);pointsActor_->GetProperty()->SetColor(0.0, 0.0, 1.0);renderer_->AddActor(pointsActor_);pointsActor_->SetVisibility(is_points_visible_);renderer_->ResetCamera();renderWindow_->Render();m_pScene->update();
}

将jet风格渲染封装成了一个函数,统一调用

Jet渲染风格


vtkSmartPointer<vtkLookupTable> ThreeDimensionalDisplayPage::createJetLookupTable(double minValue, 
double maxValue, double gamma)
{auto lut = vtkSmartPointer<vtkLookupTable>::New();lut->SetNumberOfTableValues(256);lut->SetRange(minValue, maxValue); // 设置标量范围for (int i = 0; i < 256; ++i){double t = static_cast<double>(i) / 255.0;// 非线性调整 t,使颜色更集中于中间值t = std::pow(t, gamma);// Jet 配色映射:蓝 → 青 → 绿 → 黄 → 红double r = std::clamp(1.5 - std::abs(4.0 * t - 3.0), 0.0, 1.0);double g = std::clamp(1.5 - std::abs(4.0 * t - 2.0), 0.0, 1.0);double b = std::clamp(1.5 - std::abs(4.0 * t - 1.0), 0.0, 1.0);lut->SetTableValue(i, r, g, b);}lut->Build();return lut;
}

在这里插入图片描述

Viridis渲染风格

vtkSmartPointer<vtkLookupTable> ThreeDimensionalDisplayPage::createViridisLookupTable(double minValue,double maxValue)
{auto lut = vtkSmartPointer<vtkLookupTable>::New();lut->SetNumberOfTableValues(256);lut->SetRange(minValue, maxValue);for (int i = 0; i < 256; ++i){double t = i / 255.0;// 近似 Matplotlib Viridis 色带(更精确的RGB值可参考官方定义)double r = 0.2795 + 0.4702 * t + 0.1649 * t * t - 0.0008 * t * t * t;double g = 0.0021 + 0.7047 * t + 0.0704 * t * t - 0.0053 * t * t * t;double b = 0.3904 + 0.1066 * t + 0.1968 * t * t - 0.0641 * t * t * t;lut->SetTableValue(i, r, g, b);}lut->Build();return lut;
}

在这里插入图片描述

CoolToWarm渲染风格

vtkSmartPointer<vtkLookupTable> ThreeDimensionalDisplayPage::createCoolToWarmLookupTable(double minValue,double maxValue)
{auto lut = vtkSmartPointer<vtkLookupTable>::New();lut->SetNumberOfTableValues(256);lut->SetRange(minValue, maxValue);for (int i = 0; i < 256; ++i){double t = i / 255.0;double r = t;                     // 红:从0→1double g = 1 - fabs(t - 0.5) * 2; // 绿:中间最亮double b = 1 - t;                 // 蓝:从1→0lut->SetTableValue(i, r, g, b);}lut->Build();return lut;
}

在这里插入图片描述

Grayscale渲染风格

vtkSmartPointer<vtkLookupTable> ThreeDimensionalDisplayPage::createGrayscaleLookupTable(double minValue, 
double maxValue)
{auto lut = vtkSmartPointer<vtkLookupTable>::New();lut->SetNumberOfTableValues(256);lut->SetRange(minValue, maxValue);for (int i = 0; i < 256; ++i){double gray = i / 255.0; // 从黑→白lut->SetTableValue(i, gray, gray, gray);}lut->Build();return lut;
}

在这里插入图片描述

Rainbow渲染风格


vtkSmartPointer<vtkLookupTable> ThreeDimensionalDisplayPage::createRainbowLookupTable(double minValue,double maxValue)
{auto lut = vtkSmartPointer<vtkLookupTable>::New();lut->SetNumberOfTableValues(256);lut->SetHueRange(0.666, 0.0); // 色相从蓝(0.666)→红(0.0)lut->SetSaturationRange(1.0, 1.0);lut->SetValueRange(1.0, 1.0);lut->SetRange(minValue, maxValue);lut->Build();return lut;
}

在这里插入图片描述

切换风格按钮槽函数(可优化)

void ThreeDimensionalDisplayPage::updateColorStyle(int style)
{current_color_style = style;if (ply_point_actor_) // PLY点云模型{auto mapper = vtkPolyDataMapper::SafeDownCast(ply_point_actor_->GetMapper());if (mapper){vtkSmartPointer<vtkLookupTable> new_lut;switch (style){case 0:new_lut = createJetLookupTable(current_scalar_range[0], current_scalar_range[1], 1.0);break;case 1:new_lut = createViridisLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 2:new_lut = createCoolToWarmLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 3:new_lut = createGrayscaleLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 4:new_lut = createRainbowLookupTable(current_scalar_range[0], current_scalar_range[1]);break;}mapper->SetLookupTable(new_lut);renderWindow_->Render();}}if (surfaceActor_) // OBJ网格模型{auto mapper = vtkPolyDataMapper::SafeDownCast(surfaceActor_->GetMapper());if (mapper){vtkSmartPointer<vtkLookupTable> new_lut;switch (style){case 0:new_lut = createJetLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 1:new_lut = createViridisLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 2:new_lut = createCoolToWarmLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 3:new_lut = createGrayscaleLookupTable(current_scalar_range[0], current_scalar_range[1]);break;case 4:new_lut = createRainbowLookupTable(current_scalar_range[0], current_scalar_range[1]);break;}mapper->SetLookupTable(new_lut);renderWindow_->Render();}}
}

相关代码github链接


文章转载自:

http://GHueQ0xt.jcrfm.cn
http://nDcgwr4w.jcrfm.cn
http://JuRtQUC2.jcrfm.cn
http://KfcFFd8Z.jcrfm.cn
http://ARUY6KbS.jcrfm.cn
http://VZ7phlnp.jcrfm.cn
http://Z8UU3FOA.jcrfm.cn
http://yYE1s2HZ.jcrfm.cn
http://85ZFPzhQ.jcrfm.cn
http://h5dGhuth.jcrfm.cn
http://XogJuPW9.jcrfm.cn
http://DAgrpq2O.jcrfm.cn
http://kp91la1S.jcrfm.cn
http://CJMcopQr.jcrfm.cn
http://BoLmvA5m.jcrfm.cn
http://lGR9FUX4.jcrfm.cn
http://oprZwnWC.jcrfm.cn
http://HuQ4v0dq.jcrfm.cn
http://5mhucub8.jcrfm.cn
http://AbMssXux.jcrfm.cn
http://aJf3ifLW.jcrfm.cn
http://34ceYabi.jcrfm.cn
http://JIF2bduf.jcrfm.cn
http://VxlfamO9.jcrfm.cn
http://uSW52w3a.jcrfm.cn
http://9VFyUDag.jcrfm.cn
http://ECq42yUj.jcrfm.cn
http://lYzmn6Cq.jcrfm.cn
http://Zqe8TZuL.jcrfm.cn
http://Ic2CF53I.jcrfm.cn
http://www.dtcms.com/wzjs/657168.html

相关文章:

  • 吉林网站建设公司新织梦官网
  • 买域名后 怎么做网站wordpress管理员登陆不上
  • 物流网站开发项目书住房和城乡建设部网站建筑电工
  • 网站建设公司怎么找业务动漫设计与制作难吗
  • 品划做网站网站后台网址在哪输入
  • 网站建设需要具备哪些知识五屏网站建设哪家有
  • 穿衣搭配的网站如何做如何把网站一个栏目做301跳转
  • 网站下载链接打不开以下哪个选项不属于网络营销的特点
  • 线上做图的网站怎样把网站上传到服务器上
  • 徐州市建设局网站电话号码无锡网站商城建设
  • 常规网站建设价格实惠企业管理培训视频免费
  • 国外设计欣赏网站响应式设计网站
  • 山东营销网站建设联系方式佛山网站建设及推广服务公司
  • 南昌建站系统外包招聘网站大全
  • 网站开发开源的手册做我男朋友的网站
  • 淮安网站推广如何进外贸大公司网站
  • 网站做sem优化wordpress google 360
  • 太原网站优化多少钱销售管理软件crm
  • 苏州企业网站建设公司只选亿企邦玖云建站系统
  • 建网站需要什么步骤吴江建网站
  • 国外网站流量查询网站编排页面
  • 网站建设商业十大外贸网站
  • 公司做网站都需要什么流程十大互联网平台
  • 尊园地产做的网站学校网站设计论文
  • 新闻门户网站源码公众号运营怎么赚钱
  • 广州做网站海珠信科网站优化内链怎么做
  • 网站建设背景图片网络推广服务费
  • 志愿者网站时长码怎么做电商购物
  • 如何把网站建设好网站被百度收录很重要
  • 公司企业简历模板嘉兴优化网站排名