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

电子商务网站建设的特点餐饮营销方案

电子商务网站建设的特点,餐饮营销方案,珠海建设网站,重庆泡沫字制作文章目录 3D空间坐标转换例程心得 3D空间坐标转换 在冠状图、矢状面、横截面等创建的角度组件的三个端点坐标,不能直接用在3D视图中。这是因为2D切片的坐标是基于像素的,而3D空间的坐标可能是基于实际物理尺寸的。 解决方案是使用2D点的坐标、切片的物理…

文章目录

  • 3D空间坐标转换
  • 例程
  • 心得

3D空间坐标转换

在冠状图、矢状面、横截面等创建的角度组件的三个端点坐标,不能直接用在3D视图中。这是因为2D切片的坐标是基于像素的,而3D空间的坐标可能是基于实际物理尺寸的。
解决方案是使用2D点的坐标、切片的物理位置和方向以及可能的其他参数(例如切片厚度或间距),来计算空间坐标。将计算好的空间坐标p1、p2、p3传入下面的函数中,就可以在3D视图中画出角度组件。

例程

get3DViewAngle(double* p1, double* p2, double* mid, int* indexVal) {double modifiedPoints[3][3]; int currentAngleIndex = *indexVal;auto iter = threeDActors.find(currentAngleIndex);if (iter != threeDActors.end()) {for (auto act : iter->second) {threeDRenderer->RemoveActor(act);}threeDActors.erase(iter);}double* pts[] = {p1, p2, mid};for(int i = 0; i < 3; i++) {modifiedPoints[i][0] = pts[i][0] * xRange[1] / imageDims[0];modifiedPoints[i][1] = pts[i][1] * yRange[1] / imageDims[1];modifiedPoints[i][2] = pts[i][2] * zRange[1] / imageDims[2];}vtkSmartPointer<vtkSphereSource> src1 = vtkSmartPointer<vtkSphereSource>::New();src1->SetCenter(modifiedPoints[0]);src1->SetRadius(2);vtkSmartPointer<vtkPolyDataMapper> map1 = vtkSmartPointer<vtkPolyDataMapper>::New();map1->SetInputConnection(src1->GetOutputPort());vtkSmartPointer<vtkActor> act1 = vtkSmartPointer<vtkActor>::New();act1->SetMapper(map1);vtkSmartPointer<vtkSphereSource> src2 = vtkSmartPointer<vtkSphereSource>::New();src2->SetCenter(modifiedPoints[1]);src2->SetRadius(2);vtkSmartPointer<vtkPolyDataMapper> map2 = vtkSmartPointer<vtkPolyDataMapper>::New();map2->SetInputConnection(src2->GetOutputPort());vtkSmartPointer<vtkActor> act2 = vtkSmartPointer<vtkActor>::New();act2->SetMapper(map2);vtkSmartPointer<vtkSphereSource> src3 = vtkSmartPointer<vtkSphereSource>::New();src3->SetCenter(modifiedPoints[2]);src3->SetRadius(2);vtkSmartPointer<vtkPolyDataMapper> map3 = vtkSmartPointer<vtkPolyDataMapper>::New();map3->SetInputConnection(src3->GetOutputPort());vtkSmartPointer<vtkActor> act3 = vtkSmartPointer<vtkActor>::New();act3->SetMapper(map3);vtkSmartPointer<vtkLineSource> lnSrc1 = vtkSmartPointer<vtkLineSource>::New();lnSrc1->SetPoint1(modifiedPoints[0]);lnSrc1->SetPoint2(modifiedPoints[2]);vtkSmartPointer<vtkPolyDataMapper> lnMap1 = vtkSmartPointer<vtkPolyDataMapper>::New();lnMap1->SetInputConnection(lnSrc1->GetOutputPort());vtkSmartPointer<vtkActor> lnAct1 = vtkSmartPointer<vtkActor>::New();lnAct1->SetMapper(lnMap1);vtkSmartPointer<vtkLineSource> lnSrc2 = vtkSmartPointer<vtkLineSource>::New();lnSrc2->SetPoint1(modifiedPoints[1]);lnSrc2->SetPoint2(modifiedPoints[2]);vtkSmartPointer<vtkPolyDataMapper> lnMap2 = vtkSmartPointer<vtkPolyDataMapper>::New();lnMap2->SetInputConnection(lnSrc2->GetOutputPort());vtkSmartPointer<vtkActor> lnAct2 = vtkSmartPointer<vtkActor>::New();lnAct2->SetMapper(lnMap2);threeDRenderer->AddActor(act1);threeDRenderer->AddActor(act2);threeDRenderer->AddActor(act3);threeDRenderer->AddActor(lnAct1);threeDRenderer->AddActor(lnAct2);std::vector<vtkSmartPointer<vtkActor>> acts = {act1, act2, act3, lnAct1, lnAct2};threeDActors[currentAngleIndex] = acts;for (auto act : acts) {threeDRenderer->AddActor(act);}renderWidget[3]->interactor()->Render();
}}

心得

  1. 在创建角度组件后,不能直接读取组件的端点坐标来用于计算空间坐标,因为此时的端点坐标还是空。需要等到鼠标左键点击三次后,才会得到完整的端点坐标。这个时候可以写在角度组件的回调函数中,然后使用成员变量来获取创建好的端点坐标。
  2. 在角度组件的回调函数中,可以使用信号槽机制来保证拖动组件后能够实时更新角度组件位置。
  3. 如果是创建线条组件,需要手动触发一次回调函数,因为线条组件的端点位置是可以直接读取的。
                lineCallback->Execute(lineWidget, vtkCommand::EndInteractionEvent, nullptr);         //手动触发回调

4.如果想要保证实时删除2D和3D视图中的角度组件,可以使用map,只需要记住创建的索引就能直接删除组件。这样可以与页面上的组件数量和组件索引独立开来.

std::map<int,vtkSmartPointer<vtkAngleWidget>> ngleWidgets;
http://www.yayakq.cn/news/728647/

相关文章:

  • python整合网站开发技术百度指数数据分析平台入口
  • 网站建设有哪些优质公众号怎样看网站建设制作方
  • 做数据统计的网站免费海报模板网站
  • 哪个网站能查是否做股东网站设计规划思路
  • 响应式网站欣赏国外的贸易网站
  • 管庄地区网站建设wordpress 微信支付宝
  • 室内设计专业网站东莞百度推广排名
  • 教学督导网站建设报告西安制作网站的公司有
  • dw做的网站有什么缺陷注册规划师报考条件2022
  • 电商网站开发的主流技术海外pvn加速器
  • 网站设计个人2023年网络推广方法
  • 班级网站模板素材ukidc做电影网站
  • 枸杞网站的建设方案网站项目维护费用
  • php做网站有哪些好处建设网站员工招聘策划方案
  • 如何购买网站主机徐州做网站沈阳厂商
  • 创新的常州做网站做网站用虚拟主机还是用服务器
  • 山东网站建设模板制作站内优化主要从哪些方面进行
  • 江苏高效网站制作公司石家庄外贸网站建设公司
  • 辽宁住房和城乡建设网站磁力吧
  • 二级区域网站名免费游戏网站制作
  • dedecms 网站还原数据之后 乱码信息网站建设
  • seo蒙牛伊利企业网站专业性诊断平陆网站建设
  • 网站色彩搭配技巧wordpress+开发入门
  • 苏州新区做网站公司wordpress图片云储存
  • android移动网站开发详解长沙公司网站费用
  • 怀化网站建设有哪些企业网站宣传视频外链
  • 网站建设自学顺德营销型网站一站式服务哪家好
  • 昆山高端网站建设机构个人简介免费模板下载
  • 寻找赣州网站建设做五金的外贸网站有哪些
  • 网站服务理念网站的风格设计有哪些