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

php做网站需要的软件广告公司网站(附falsh及源代码)

php做网站需要的软件,广告公司网站(附falsh及源代码),网站的色彩,对网站开发语言的统计背景 上一篇绘制点云的博文中#xff0c;使用的vtkCameraOrientationWidget来绘制的坐标轴#xff0c;最近又学习到两种新的坐标轴绘制形式。 vtkOrientationMarkerWidget vtkAxesActor 单独使用vtkAxesActor能够绘制出坐标轴#xff0c;但是会随着鼠标操作旋转和平移时…背景 上一篇绘制点云的博文中使用的vtkCameraOrientationWidget来绘制的坐标轴最近又学习到两种新的坐标轴绘制形式。 vtkOrientationMarkerWidget vtkAxesActor 单独使用vtkAxesActor能够绘制出坐标轴但是会随着鼠标操作旋转和平移时在三维窗口中移动。搭配vtkOrientationMarkerWidget 的话能够在三维窗口的widget中再放置一个小的widget专门放置vtkAxesActor可以达到停留在窗口左下角只随着鼠标旋转的目的。 在头文件中定义vtkOrientationMarkerWidget 的对象 vtkSmartPointervtkOrientationMarkerWidget markerOrientationWidget;void QVtkDemo2::testVtk3D() {//创建着色器对象vtkSmartPointervtkRenderer g_vtkRenderer vtkSmartPointervtkRenderer::New();//设置背景颜色g_vtkRenderer-SetBackground(.1, .2, .4);//创建point对象vtkSmartPointervtkPoints g_vtkPoints vtkSmartPointervtkPoints::New();g_vtkPoints-SetNumberOfPoints(200);//创建cell对象vtkSmartPointervtkCellArray g_vtkVertices vtkSmartPointervtkCellArray::New();vtkIdType id[1];//随机生成200个点float minz VTK_FLOAT_MAX, maxz VTK_FLOAT_MIN;for (int i 0; i 200; i){float x rand() % 10;float y rand() % 10;float z rand() % 10;//提前申请了points的数量使用set比insert速度更快g_vtkPoints-SetPoint(i, x, y, z);id[0] i;g_vtkVertices-InsertNextCell(1, id);if (z maxz){maxz z;}if (z minz){minz z;}}//创建poly对象vtkSmartPointervtkPolyData g_vtkpolyData vtkSmartPointervtkPolyData::New();g_vtkpolyData-SetPoints(g_vtkPoints);g_vtkpolyData-SetVerts(g_vtkVertices);vtkSmartPointervtkVertexGlyphFilter g_glyphFilter vtkSmartPointervtkVertexGlyphFilter::New();g_glyphFilter-SetInputData(g_vtkpolyData);g_glyphFilter-Update();vtkSmartPointervtkElevationFilter g_elevationFilter vtkSmartPointervtkElevationFilter::New();g_elevationFilter-SetInputConnection(g_glyphFilter-GetOutputPort());g_elevationFilter-SetLowPoint(0, 0, minz);g_elevationFilter-SetHighPoint(0, 0, maxz);//创建polyMappervtkSmartPointervtkPolyDataMapper g_vtkpointsMapper vtkSmartPointervtkPolyDataMapper::New();g_vtkpointsMapper-SetInputConnection(g_elevationFilter-GetOutputPort());//创建ActorvtkSmartPointervtkActor g_vtkpointsActor vtkSmartPointervtkActor::New();g_vtkpointsActor-SetMapper(g_vtkpointsMapper);g_vtkpointsActor-GetProperty()-SetPointSize(3);//设置点的大小g_vtkRenderer-AddActor(g_vtkpointsActor);vtkNewvtkLookupTable lut vtkNewvtkLookupTable::vtkNew();lut-SetNumberOfTableValues(7);lut-SetHueRange(0.0, 0.67);lut-SetTableRange(minz, maxz);lut-Build();vtkNewvtkScalarBarActor colorBar vtkNewvtkScalarBarActor::vtkNew();colorBar-SetLookupTable(lut);colorBar-SetNumberOfLabels(7);colorBar-SetBarRatio(0.10);colorBar-SetUnconstrainedFontSize(0.05);colorBar-SetMaximumHeightInPixels(100);colorBar-SetDisplayPosition(500, 80);g_vtkRenderer-AddActor2D(colorBar);//根据点云的包围盒寻找最佳的显示视点位置g_vtkRenderer-ResetCamera();//ui中的绘制窗口添加定义的着色器ui.openGLWidget-renderWindow()-AddRenderer(g_vtkRenderer);//开始三维渲染ui.openGLWidget-renderWindow()-Render();//绘制坐标轴vtkSmartPointervtkAxesActor axes_actor vtkSmartPointervtkAxesActor::New();axes_actor-SetPosition(0, 0, 0);axes_actor-SetTotalLength(50, 50, 50);//axes_actor-SetScale(5.0);//axes_actor-SetShaftType(0);//axes_actor-SetCylinderRadius(0.1);//axes_actor-SetConeRadius(0.3);//axes_actor-SetAxisLabels(1);//axes_actor-SetTipType(0); //坐标轴顶部为圆锥体axes_actor-GetXAxisShaftProperty()-SetColor(1, 0, 1);axes_actor-GetXAxisTipProperty()-SetColor(1, 0, 1);axes_actor-GetZAxisShaftProperty()-SetColor(1, 1, 0);axes_actor-GetZAxisTipProperty()-SetColor(1, 1, 0);markerOrientationWidget vtkSmartPointervtkOrientationMarkerWidget::New();markerOrientationWidget-SetOrientationMarker(axes_actor);markerOrientationWidget-SetInteractor(ui.openGLWidget-interactor());markerOrientationWidget-SetCurrentRenderer(g_vtkRenderer);markerOrientationWidget-SetDefaultRenderer(g_vtkRenderer);markerOrientationWidget-SetViewport(0.0, 0.0, 0.2, 0.2);markerOrientationWidget-SetEnabled(1);markerOrientationWidget-SetZoom(1.2);markerOrientationWidget-SetInteractive(false);return; }可以为三维空间添加一个网格底面如图所示 只需要在上述代码中创建一个新的Actor以及对应的Mapper和PlaneSource然后向renderer中添加一个额外的Actor并通过vtkCamera来设定我们当前的视角提升观感 void QVtkDemo2::testVtk3D() {//创建着色器对象vtkSmartPointervtkRenderer g_vtkRenderer vtkSmartPointervtkRenderer::New();//设置背景颜色g_vtkRenderer-SetBackground(.1, .2, .4);//创建point对象vtkSmartPointervtkPoints g_vtkPoints vtkSmartPointervtkPoints::New();g_vtkPoints-SetNumberOfPoints(200);//创建cell对象vtkSmartPointervtkCellArray g_vtkVertices vtkSmartPointervtkCellArray::New();vtkIdType id[1];//随机生成200个点float minz VTK_FLOAT_MAX, maxz VTK_FLOAT_MIN;for (int i 0; i 200; i){float x rand() % 10;float y rand() % 10;float z rand() % 10;//提前申请了points的数量使用set比insert速度更快g_vtkPoints-SetPoint(i, x, y, z);id[0] i;g_vtkVertices-InsertNextCell(1, id);if (z maxz){maxz z;}if (z minz){minz z;}}//创建poly对象vtkSmartPointervtkPolyData g_vtkpolyData vtkSmartPointervtkPolyData::New();g_vtkpolyData-SetPoints(g_vtkPoints);g_vtkpolyData-SetVerts(g_vtkVertices);vtkSmartPointervtkVertexGlyphFilter g_glyphFilter vtkSmartPointervtkVertexGlyphFilter::New();g_glyphFilter-SetInputData(g_vtkpolyData);g_glyphFilter-Update();vtkSmartPointervtkElevationFilter g_elevationFilter vtkSmartPointervtkElevationFilter::New();g_elevationFilter-SetInputConnection(g_glyphFilter-GetOutputPort());g_elevationFilter-SetLowPoint(0, 0, minz);g_elevationFilter-SetHighPoint(0, 0, maxz);//创建polyMappervtkSmartPointervtkPolyDataMapper g_vtkpointsMapper vtkSmartPointervtkPolyDataMapper::New();g_vtkpointsMapper-SetInputConnection(g_elevationFilter-GetOutputPort());//创建ActorvtkSmartPointervtkActor g_vtkpointsActor vtkSmartPointervtkActor::New();g_vtkpointsActor-SetMapper(g_vtkpointsMapper);g_vtkpointsActor-GetProperty()-SetPointSize(3);//设置点的大小g_vtkRenderer-AddActor(g_vtkpointsActor);vtkNewvtkLookupTable lut vtkNewvtkLookupTable::vtkNew();lut-SetNumberOfTableValues(7);lut-SetHueRange(0.0, 0.67);lut-SetTableRange(minz, maxz);lut-Build();vtkNewvtkScalarBarActor colorBar vtkNewvtkScalarBarActor::vtkNew();colorBar-SetLookupTable(lut);colorBar-SetNumberOfLabels(7);colorBar-SetBarRatio(0.10);colorBar-SetUnconstrainedFontSize(0.05);colorBar-SetMaximumHeightInPixels(100);colorBar-SetDisplayPosition(500, 80);g_vtkRenderer-AddActor2D(colorBar);//定义一个平面vtkSmartPointervtkPlaneSource mReferencePlaneSource;vtkSmartPointervtkPolyDataMapper mReferencePlaneMapper;vtkSmartPointervtkActor mReferencePlaneActor;//添加平面mReferencePlaneSource vtkSmartPointervtkPlaneSource::New();mReferencePlaneMapper vtkSmartPointervtkPolyDataMapper::New();mReferencePlaneActor vtkSmartPointervtkActor::New();mReferencePlaneSource-SetXResolution(20);mReferencePlaneSource-SetYResolution(20);mReferencePlaneSource-SetOrigin(-10.0, -10.0, -6.0); //根据视野范围来调整mReferencePlaneSource-SetPoint1(10.0, -10.0, -6.0);mReferencePlaneSource-SetPoint2(-10.0, 10.0, -6.0);mReferencePlaneMapper-SetInputConnection(mReferencePlaneSource-GetOutputPort());mReferencePlaneActor-SetMapper(mReferencePlaneMapper);mReferencePlaneActor-GetProperty()-SetRepresentationToWireframe();mReferencePlaneActor-GetProperty()-SetColor(0.5, 1.0, 1.0);mReferencePlaneActor-SetVisibility(true);g_vtkRenderer-AddActor(mReferencePlaneActor);vtkSmartPointervtkCamera _vtk_icamera vtkSmartPointervtkCamera::New();_vtk_icamera-SetPosition(50.0, 50.0, 30.0);_vtk_icamera-SetFocalPoint(0.0, 0.0, 0.0);_vtk_icamera-SetViewUp(0.0, 0.0, 1.0);_vtk_icamera-ComputeViewPlaneNormal();if (_vtk_icamera){g_vtkRenderer-SetActiveCamera(_vtk_icamera);g_vtkRenderer-ResetCamera();}//根据点云的包围盒寻找最佳的显示视点位置//g_vtkRenderer-ResetCamera();//ui中的绘制窗口添加定义的着色器ui.openGLWidget-renderWindow()-AddRenderer(g_vtkRenderer);//开始三维渲染ui.openGLWidget-renderWindow()-Render();//绘制坐标轴vtkSmartPointervtkAxesActor axes_actor vtkSmartPointervtkAxesActor::New();axes_actor-SetPosition(0, 0, 0);axes_actor-SetTotalLength(50, 50, 50);//axes_actor-SetScale(5.0);//axes_actor-SetShaftType(0);//axes_actor-SetCylinderRadius(0.1);//axes_actor-SetConeRadius(0.3);//axes_actor-SetAxisLabels(1);//axes_actor-SetTipType(0); //坐标轴顶部为圆锥体axes_actor-GetXAxisShaftProperty()-SetColor(1, 0, 1);axes_actor-GetXAxisTipProperty()-SetColor(1, 0, 1);axes_actor-GetZAxisShaftProperty()-SetColor(1, 1, 0);axes_actor-GetZAxisTipProperty()-SetColor(1, 1, 0);markerOrientationWidget vtkSmartPointervtkOrientationMarkerWidget::New();markerOrientationWidget-SetOrientationMarker(axes_actor);markerOrientationWidget-SetInteractor(ui.openGLWidget-interactor());markerOrientationWidget-SetCurrentRenderer(g_vtkRenderer);markerOrientationWidget-SetDefaultRenderer(g_vtkRenderer);markerOrientationWidget-SetViewport(0.0, 0.0, 0.2, 0.2);markerOrientationWidget-SetEnabled(1);markerOrientationWidget-SetZoom(1.2);markerOrientationWidget-SetInteractive(false);return; }vtkCubeAxesActor 下图是matlab的三维显示想要绘制网格状的坐标轴并标注坐标VTK提供了vtkCubeAxesActor vtkCubeAxesActor作为一类Actor, 因此我们只需要定义好vtkCubeAxesActor的参数然后添加到Renderer中即可 void QVtkDemo2::testVtk3D() {//创建着色器对象vtkSmartPointervtkRenderer g_vtkRenderer vtkSmartPointervtkRenderer::New();//设置背景颜色g_vtkRenderer-SetBackground(.1, .2, .4);//创建point对象vtkSmartPointervtkPoints g_vtkPoints vtkSmartPointervtkPoints::New();g_vtkPoints-SetNumberOfPoints(200);//创建cell对象vtkSmartPointervtkCellArray g_vtkVertices vtkSmartPointervtkCellArray::New();vtkIdType id[1];//随机生成200个点float minz VTK_FLOAT_MAX, maxz VTK_FLOAT_MIN;for (int i 0; i 200; i){float x rand() % 10;float y rand() % 10;float z rand() % 10;//提前申请了points的数量使用set比insert速度更快g_vtkPoints-SetPoint(i, x, y, z);id[0] i;g_vtkVertices-InsertNextCell(1, id);if (z maxz){maxz z;}if (z minz){minz z;}}//创建poly对象vtkSmartPointervtkPolyData g_vtkpolyData vtkSmartPointervtkPolyData::New();g_vtkpolyData-SetPoints(g_vtkPoints);g_vtkpolyData-SetVerts(g_vtkVertices);vtkSmartPointervtkVertexGlyphFilter g_glyphFilter vtkSmartPointervtkVertexGlyphFilter::New();g_glyphFilter-SetInputData(g_vtkpolyData);g_glyphFilter-Update();vtkSmartPointervtkElevationFilter g_elevationFilter vtkSmartPointervtkElevationFilter::New();g_elevationFilter-SetInputConnection(g_glyphFilter-GetOutputPort());g_elevationFilter-SetLowPoint(0, 0, minz);g_elevationFilter-SetHighPoint(0, 0, maxz);//创建polyMappervtkSmartPointervtkPolyDataMapper g_vtkpointsMapper vtkSmartPointervtkPolyDataMapper::New();g_vtkpointsMapper-SetInputConnection(g_elevationFilter-GetOutputPort());//创建ActorvtkSmartPointervtkActor g_vtkpointsActor vtkSmartPointervtkActor::New();g_vtkpointsActor-SetMapper(g_vtkpointsMapper);g_vtkpointsActor-GetProperty()-SetPointSize(3);//设置点的大小g_vtkRenderer-AddActor(g_vtkpointsActor);vtkNewvtkLookupTable lut vtkNewvtkLookupTable::vtkNew();lut-SetNumberOfTableValues(7);lut-SetHueRange(0.0, 0.67);lut-SetTableRange(minz, maxz);lut-Build();vtkNewvtkScalarBarActor colorBar vtkNewvtkScalarBarActor::vtkNew();colorBar-SetLookupTable(lut);colorBar-SetNumberOfLabels(7);colorBar-SetBarRatio(0.10);colorBar-SetUnconstrainedFontSize(0.05);colorBar-SetMaximumHeightInPixels(100);colorBar-SetDisplayPosition(500, 80);g_vtkRenderer-AddActor2D(colorBar);//vtkCubeAxesvtkSmartPointervtkCubeAxesActor cubeAxes vtkSmartPointervtkCubeAxesActor::New();auto activeCamera g_vtkRenderer-GetActiveCamera();cubeAxes-SetCamera(activeCamera);double bounds[6] { 0.0, 10.0, 0.0, 10.0, 0.0, 10.0 };cubeAxes-SetBounds(bounds);cubeAxes-SetXTitle(X-Axis);cubeAxes-SetYTitle(Y-Axis);cubeAxes-SetZTitle(Z-Axis);cubeAxes-GetTitleTextProperty(0)-SetColor(1.0, 0.0, 1.0);cubeAxes-GetLabelTextProperty(0)-SetColor(1.0, 0.0, 1.0);cubeAxes-GetTitleTextProperty(1)-SetColor(0.0, 1.0, 0.0);cubeAxes-GetLabelTextProperty(1)-SetColor(0.0, 1.0, 0.0);cubeAxes-GetTitleTextProperty(2)-SetColor(1.0, 1.0, 0.0);cubeAxes-GetLabelTextProperty(2)-SetColor(1.0, 1.0, 0.0);cubeAxes-SetVisibility(1);cubeAxes-SetXAxisRange(0, 10.0);cubeAxes-SetYAxisRange(0.0, 10.0);cubeAxes-SetZAxisRange(0.0, 10.0);cubeAxes-DrawXGridlinesOn();cubeAxes-DrawYGridlinesOn();cubeAxes-DrawZGridlinesOn();cubeAxes-SetDrawXInnerGridlines(0);cubeAxes-SetDrawYInnerGridlines(0);cubeAxes-SetDrawZInnerGridlines(0);cubeAxes-XAxisMinorTickVisibilityOff();cubeAxes-YAxisMinorTickVisibilityOff();cubeAxes-ZAxisMinorTickVisibilityOff();cubeAxes-SetScreenSize(30.0);cubeAxes-SetLabelOffset(20.0);cubeAxes-SetGridLineLocation(2);cubeAxes-SetTickLocation(1);cubeAxes-SetFlyMode(0);g_vtkRenderer-AddActor(cubeAxes);vtkSmartPointervtkCamera _vtk_icamera vtkSmartPointervtkCamera::New();_vtk_icamera-SetPosition(50.0, 50.0, 30.0);_vtk_icamera-SetFocalPoint(0.0, 0.0, 0.0);_vtk_icamera-SetViewUp(0.0, 0.0, 1.0);_vtk_icamera-ComputeViewPlaneNormal();if (_vtk_icamera){g_vtkRenderer-SetActiveCamera(_vtk_icamera);g_vtkRenderer-ResetCamera();}//根据点云的包围盒寻找最佳的显示视点位置//g_vtkRenderer-ResetCamera();//ui中的绘制窗口添加定义的着色器ui.openGLWidget-renderWindow()-AddRenderer(g_vtkRenderer);//开始三维渲染ui.openGLWidget-renderWindow()-Render();//绘制坐标轴vtkSmartPointervtkAxesActor axes_actor vtkSmartPointervtkAxesActor::New();axes_actor-SetPosition(0, 0, 0);axes_actor-SetTotalLength(50, 50, 50);//axes_actor-SetScale(5.0);//axes_actor-SetShaftType(0);//axes_actor-SetCylinderRadius(0.1);//axes_actor-SetConeRadius(0.3);//axes_actor-SetAxisLabels(1);//axes_actor-SetTipType(0); //坐标轴顶部为圆锥体axes_actor-GetXAxisShaftProperty()-SetColor(1, 0, 1);axes_actor-GetXAxisTipProperty()-SetColor(1, 0, 1);axes_actor-GetZAxisShaftProperty()-SetColor(1, 1, 0);axes_actor-GetZAxisTipProperty()-SetColor(1, 1, 0);markerOrientationWidget vtkSmartPointervtkOrientationMarkerWidget::New();markerOrientationWidget-SetOrientationMarker(axes_actor);markerOrientationWidget-SetInteractor(ui.openGLWidget-interactor());markerOrientationWidget-SetCurrentRenderer(g_vtkRenderer);markerOrientationWidget-SetDefaultRenderer(g_vtkRenderer);markerOrientationWidget-SetViewport(0.0, 0.0, 0.2, 0.2);markerOrientationWidget-SetEnabled(1);markerOrientationWidget-SetZoom(1.2);markerOrientationWidget-SetInteractive(false);return; }带灰度纹理点云的三维显示
http://www.dnsts.com.cn/news/211601.html

相关文章:

  • 网站版式百度网站大全
  • 购物网站服务器价格网站布局设计理由
  • 温江区规划建设局网站WordPress修改笔记
  • 成都网站排名生客seo如何建立自己的公司
  • 外链收录网站建设工程施工合同实例
  • 人防网站建设与服务免费网站源码下载器
  • 网站首页制作方案上海企业登记在线
  • 网页模板下载网站10为什么做网站更新
  • 服务好的企业做网站大丰做网站建设的公司
  • 有做销售产品的网站北京网站排名公司
  • 一个新品牌怎样营销推广深圳优化百度
  • 做网站很烧钱杭州市建设厅网站
  • 做网站的是什么职业免费的黄冈网站有哪些平台可以聊天呢
  • 深圳企业网站定制公司storyset自定义插画网站
  • 济南品牌网站制作方案app排名
  • ai网站推荐免费图纸网
  • 培训学校类网站建设方案网站设计包括什么软件
  • win7iis配置网站怎样申请做c c 网站
  • 做英文版网站内蒙古建设厅官方网站
  • 音乐网站建设视频教程东莞网站建设套餐
  • 做网站服务器权限设置网站优化套餐
  • 长春网站建设方案推广工作总结2023最新完整版
  • 建设部网站业绩补录自助小站
  • 外贸网站违反谷歌规则网站备案成功
  • 做视频在哪个网站找素材建设保障房网站首页
  • 免费流程图网站南京市溧水建设局网站
  • 有flash的网站备案网站名怎么写
  • 智能建站是什么比较好的企业建站平台
  • 公司做网站一般用什么域名安康建设网站
  • 网站在线wordpress固定连接设置404