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

邢台做外贸网站廊坊网站关键词排名

邢台做外贸网站,廊坊网站关键词排名,网站开发 链接指向文件夹,在线做六级阅读网站判断 一个点 ,判断是否在风格 stl 模型内部#xff0c;或表面#xff1a; 目录 1.方案一#xff1a;使用vtkCellLocator FindClosestPoint 找到模型上距离给定点最近的一点#xff0c;计算两点的距离 #xff0c;小于某一阈值 则认为此点在模型上#xff1b; 2.方案二…判断 一个点 ,判断是否在风格 stl 模型内部或表面 目录 1.方案一使用vtkCellLocator  FindClosestPoint 找到模型上距离给定点最近的一点计算两点的距离 小于某一阈值 则认为此点在模型上 2.方案二 使用 vtkKdTreePointLocator 3.方案三 使用 vtkSelectEnclosedPoints 1.方案一使用vtkCellLocator  FindClosestPoint 找到模型上距离给定点最近的一点计算两点的距离 小于某一阈值 则认为此点在模型上 vtkCellLocator本身是一个octree。典型的用法就是求最近的单元或者点 bool CheckPointInsidePolyData(vtkPolyData * poly, double* pt) {bool insidefalse; auto cellLocator vtkSmartPointervtkCellLocator::New();cellLocator-SetDataSet(poly);cellLocator-BuildLocator();auto assistCell vtkSmartPointervtkGenericCell::New();double closestPoint[3];//the coordinates of the closest point will be returned heredouble closestPointDist2; //the squared distance to the closest point will be returned herevtkIdType cellId; //the cell id of the cell containing the closest point will be returned hereint subId-1;cellLocator-FindClosestPoint(point, closestPoint, assistCell, cellId, subId, closestPointDist2);if (-1! subIdclosestPointDist2 0.001){return true;}return inside; } 2.方案二 使用 vtkKdTreePointLocator 但这个只能找到最新的点还需要自己判断一下距离 官方样例 #include vtkIdList.h #include vtkKdTreePointLocator.h #include vtkNew.h #include vtkPoints.h #include vtkPolyData.hint main(int, char*[]) {// Setup point coordinatesdouble x[3] {1.0, 0.0, 0.0};double y[3] {0.0, 1.0, 0.0};double z[3] {0.0, 0.0, 1.0};vtkNewvtkPoints points;points-InsertNextPoint(x);points-InsertNextPoint(y);points-InsertNextPoint(z);vtkNewvtkPolyData polydata;polydata-SetPoints(points);// Create the treevtkNewvtkKdTreePointLocator kDTree;kDTree-SetDataSet(polydata);kDTree-BuildLocator();double testPoint[3] {2.0, 0.0, 0.0};// Find the closest points to TestPointvtkIdType iD kDTree-FindClosestPoint(testPoint);std::cout The closest point is point iD std::endl;// Get the coordinates of the closest pointdouble closestPoint[3];kDTree-GetDataSet()-GetPoint(iD, closestPoint);std::cout Coordinates: closestPoint[0] closestPoint[1] closestPoint[2] std::endl;return EXIT_SUCCESS; } 3.方案三 使用 vtkSelectEnclosedPoints vtkSelectEnclosedPoints类可以判断标记点是否在封闭表面内。 vtkSelectEnclosedPoints是一个Filter它计算所有输入点以确定它们是否位于封闭曲面中。过滤器生成一个0,1掩码以vtkDataArray的形式指示点是在提供的曲面的外部掩码值0还是内部掩码值1(输出vtkDataArray的名称是“SelectedPoints”。 运行过滤器后可以通过调用IsInsideptId方法来查询点是否在内部/外部。 样例判断三个点是否在立方体内 注意在立方体边上的点不属于在立方体内部 CODE #include vtkVersion.h #include vtkPolyData.h #include vtkPointData.h #include vtkCubeSource.h #include vtkSmartPointer.h #include vtkSelectEnclosedPoints.h #include vtkIntArray.h #include vtkDataArray.h #include vtkProperty.h #include vtkPolyDataMapper.h #include vtkActor.h #include vtkRenderWindow.h #include vtkRenderer.h #include vtkRenderWindowInteractor.hint main(int, char*[]) {vtkNewvtkCubeSource cubeSource;cubeSource-Update();vtkPolyData* cube cubeSource-GetOutput();double testInside[3] { 0.0, 0.0, 0.0 };double testOutside[3] { 0.7, 0.0, 0.0 };double testBorderOutside[3] { 0.5, 0.0, 0.0 };vtkNewvtkPoints points;points-InsertNextPoint(testInside);points-InsertNextPoint(testOutside);points-InsertNextPoint(testBorderOutside);vtkNewvtkPolyData pointsPolydata;pointsPolydata-SetPoints(points);//Points inside testvtkNewvtkSelectEnclosedPoints selectEnclosedPoints;selectEnclosedPoints-SetInputData(pointsPolydata);selectEnclosedPoints-SetSurfaceData(cube);selectEnclosedPoints-Update();for (unsigned int i 0; i 3; i) {std::cout Point i : selectEnclosedPoints-IsInside(i) std::endl;}vtkDataArray* insideArray vtkDataArray::SafeDownCast(selectEnclosedPoints-GetOutput()-GetPointData()-GetArray(SelectedPoints));for (vtkIdType i 0; i insideArray-GetNumberOfTuples(); i) {std::cout i : insideArray-GetComponent(i, 0) std::endl;}//Cube mapper, actorvtkNewvtkPolyDataMapper cubeMapper;cubeMapper-SetInputConnection(cubeSource-GetOutputPort());vtkNewvtkActor cubeActor;cubeActor-SetMapper(cubeMapper);cubeActor-GetProperty()-SetOpacity(0.5);//First, apply vtkVertexGlyphFilter to make cells around points, vtk only render cells.vtkNewvtkVertexGlyphFilter vertexGlyphFilter;vertexGlyphFilter-AddInputData(pointsPolydata);vertexGlyphFilter-Update();vtkNewvtkPolyDataMapper pointsMapper;pointsMapper-SetInputConnection(vertexGlyphFilter-GetOutputPort());vtkNewvtkActor pointsActor;pointsActor-SetMapper(pointsMapper);pointsActor-GetProperty()-SetPointSize(5); pointsActor-GetProperty()-SetColor(1.0, 0.0, 0);//Create a renderer, render window, and interactorvtkNewvtkRenderer renderer;vtkNewvtkRenderWindow renderWindow;renderWindow-AddRenderer(renderer);vtkNewvtkRenderWindowInteractor renderWindowInteractor;renderWindowInteractor-SetRenderWindow(renderWindow);// Add the actor to the scenerenderer-AddActor(cubeActor);renderer-AddActor(pointsActor);renderer-SetBackground(.0, 1, .0);renderWindow-Render();renderWindowInteractor-Start();return EXIT_SUCCESS; } 输出 Point 0: 1 Point 1: 0 Point 2: 0 0 : 1 1 : 0 2 : 0
http://www.hkea.cn/news/14518551/

相关文章:

  • 重庆seo网站策划做一个在线交易网站需要多少钱
  • 大航母网站建设与运营iis搭建网站404
  • 网站的设计风格有哪些中国互联网协会曹伟
  • seo网站沙盒期广州互联网公司排名
  • 菏泽网站建设优惠臻动传媒浙江省建设工程监理协会网站
  • 婴儿衣服做的网站全国工商网注册查询网
  • 烟台网站建设多少钱咋样建设网站
  • 网站用的服务器多少钱网站链接网址怎么做
  • 网站建设费入什么总账科目百度推广怎么做
  • 企业网站建设要网站建设怎么做帐
  • 废橡胶网站建设上海网站设计大连
  • 黄冈手机网站建设网站添加可信任站点怎么做
  • 建设银行网站 无法访问中国十大土木工程公司
  • 网站app生成软件网站备案查询 美橙
  • 长治网站页设计制作人成免费入口2022
  • 登录河北建设厅网站进入不了网站底部关键词指向
  • 汽车销售网站模板 cms房产官方网站
  • 做网站公司需要什么条件ftp链接网站空间
  • 局域网里做网站金阊苏州网站建设
  • 电商网站模板建站天津建设集团网站
  • dede单本小说网站源码如何重装一下wordpress
  • 胶州做网站公司网站建设的公司如何选
  • 网站备案 邮寄资料cms是啥
  • 百度网站域名费一年多少钱陵水网站建设介绍
  • 贵阳网站建设公司排名遵义网站建设公司价格
  • 网站建设需要岗位深圳哪个网站发布做网站
  • wordpress和discuz织梦上海百度seo公司
  • 液压电机东莞网站建设外贸网站自我建设与优化
  • 门户网站的区别代理服务网站
  • 轻定制网站建设app展示主题wordpress