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

网站运营的思路答辩ppt模板

网站运营的思路,答辩ppt模板,wordpress lms,上海网站建设公司 红威原理简述 包围体#xff08;包容盒#xff09;是一个简单的几何空间#xff0c;里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤#xff08;即当包围体碰撞#xff0c;才进行精确碰撞检测和处理#xff09;。包…原理简述 包围体包容盒是一个简单的几何空间里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤即当包围体碰撞才进行精确碰撞检测和处理。包围体类型包括球体、轴对齐包围盒AABB、有向包围盒OBB、8-DOP以及凸壳CONVEX HULL。 常见包容盒 Bounding Volumes分类 包容球SPHERE 用球体包围整个几何体用于相交测试很方便但是其紧密型差周围空隙较大当物体变形后包围球需要重新计算。当对象进行旋转运动时包围球不需要做任何更新这是包围球的优势即当几何对象频繁进行旋转运动时使用包围球效率较高。AABB包容盒Axially Aligned Bounding Box3D环境下的AABB盒即一个六面体每个边都平行于一个坐标平面较简单但紧密性较差当物体旋转、形变之后需要对AABB进行更新。本身的长宽高根据物体大小而定。OBB包容盒Oriented Bounding Box此方法紧密型较好可以降低参与相交测试的包容盒数目因此性能要优于AABB和包容球。当物体发生旋转仅需对OBB进行相同的旋转即可但是当物体形变后更新OBB的代价较大故不适用那些软体的对象。8-DOP8-DOP是由八个平面构成的。每个平面都与其他七个平面相交形成一个闭合的多边形。这些平面可以通过基于物体的最小和最大坐标值来计算。也就是说对于给定的物体可以找到其最小和最大的X、Y和Z坐标值并使用这些值来计算八个平面。8-DOP可以用于快速估计物体的包围盒以便进行碰撞检测等操作。由于它是使用八个面来近似包围物体的因此可能不够精确但通常能提供一个较好的近似结果。它在某些情况下比其他简单的包围体如轴对齐AABB包围盒更有效因为它可以更好地适应物体的形状。凸壳CONVEX HULL凸壳Convex Hull是指包含一组点集的最小凸多边形或凸体。在三维空间中凸壳是一个封闭的、由凸面构成的立体结构。给定一组三维点凸壳可以用来估计点云的整体形状并提供一种紧凑的表示形式。计算凸壳的算法有很多种其中著名的算法包括Graham扫描算法基于极角排序的凸壳计算算法。Jarvis march算法也称为Gift Wrapping算法通过不断选择点集中的最外层点来计算凸壳。QuickHull算法利用分治法的思想递归地划分空间以计算凸壳。3D Incremental算法从一个简单的初始凸壳开始逐步添加点以构建凸壳。 如上图所示越靠右包容效果好、越紧密。但是检测速度更慢也更消耗内存资源。  代码实现  #include vector #include thread #include pcl/features/moment_of_inertia_estimation.h #include pcl/io/pcd_io.h #include pcl/point_types.h #include pcl/visualization/cloud_viewer.husing namespace std::chrono_literals;int main(int argc, char** argv) {pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);// 从文件读取点云图pcl::PCDReader reader;reader.read(G:/vsdata/PCLlearn/PCDdata/bun0.pcd, *cloud);// 创建惯性矩估算对象设置输入点云并进行计算pcl::MomentOfInertiaEstimation pcl::PointXYZ feature_extractor;feature_extractor.setInputCloud(cloud);feature_extractor.compute();std::vector float moment_of_inertia;std::vector float eccentricity;pcl::PointXYZ min_point_AABB;pcl::PointXYZ max_point_AABB;pcl::PointXYZ min_point_OBB;pcl::PointXYZ max_point_OBB;pcl::PointXYZ position_OBB;Eigen::Matrix3f rotational_matrix_OBB;float major_value, middle_value, minor_value;Eigen::Vector3f major_vector, middle_vector, minor_vector;Eigen::Vector3f mass_center;// 获取惯性矩feature_extractor.getMomentOfInertia(moment_of_inertia);// 获取离心率feature_extractor.getEccentricity(eccentricity);// 获取AABB盒子feature_extractor.getAABB(min_point_AABB, max_point_AABB);// 获取OBB盒子feature_extractor.getOBB(min_point_OBB, max_point_OBB, position_OBB, rotational_matrix_OBB);feature_extractor.getEigenValues(major_value, middle_value, minor_value);// 获取主轴major_vector中轴middle_vector辅助轴minor_vectorfeature_extractor.getEigenVectors(major_vector, middle_vector, minor_vector);// 获取质心feature_extractor.getMassCenter(mass_center);pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer(3D Viewer));viewer-setBackgroundColor(0, 0, 0);viewer-addCoordinateSystem(1.0);viewer-initCameraParameters();viewer-addPointCloudpcl::PointXYZ(cloud, sample cloud);// 添加AABB包容盒viewer-addCube(min_point_AABB.x, max_point_AABB.x, min_point_AABB.y, max_point_AABB.y, min_point_AABB.z, max_point_AABB.z, 1.0, 1.0, 0.0, AABB);viewer-setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_REPRESENTATION, pcl::visualization::PCL_VISUALIZER_REPRESENTATION_WIREFRAME, AABB);// 添加OBB包容盒Eigen::Vector3f position(position_OBB.x, position_OBB.y, position_OBB.z);Eigen::Quaternionf quat(rotational_matrix_OBB);// position中心位置// quat旋转矩阵// max_point_OBB.x - min_point_OBB.x 宽度// max_point_OBB.y - min_point_OBB.y 高度// max_point_OBB.z - min_point_OBB.z 深度viewer-addCube(position, quat, max_point_OBB.x - min_point_OBB.x, max_point_OBB.y - min_point_OBB.y, max_point_OBB.z - min_point_OBB.z, OBB);viewer-setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_REPRESENTATION, pcl::visualization::PCL_VISUALIZER_REPRESENTATION_WIREFRAME, OBB);pcl::PointXYZ center(mass_center(0), mass_center(1), mass_center(2));pcl::PointXYZ x_axis(major_vector(0) mass_center(0), major_vector(1) mass_center(1), major_vector(2) mass_center(2));pcl::PointXYZ y_axis(middle_vector(0) mass_center(0), middle_vector(1) mass_center(1), middle_vector(2) mass_center(2));pcl::PointXYZ z_axis(minor_vector(0) mass_center(0), minor_vector(1) mass_center(1), minor_vector(2) mass_center(2));viewer-addLine(center, x_axis, 1.0f, 0.0f, 0.0f, major eigen vector);viewer-addLine(center, y_axis, 0.0f, 1.0f, 0.0f, middle eigen vector);viewer-addLine(center, z_axis, 0.0f, 0.0f, 1.0f, minor eigen vector);while (!viewer-wasStopped()){viewer-spinOnce(10);std::this_thread::sleep_for(10ms);}return (0); } 实现效果 黄色立方体为AABB包容盒白色立方体为OBB包容盒。
http://www.dnsts.com.cn/news/52103.html

相关文章:

  • 智慧政务网站怎么做济宁网站建设第一品牌
  • python网站开发书籍推荐办公室设计报价
  • 如何推广网站方法微信网站开发系统
  • 发布做网站需求qq群wordpress后台登录慢
  • 四线城市网站建设方向及营利点公司的企业邮箱怎么查
  • 福州市建设局内部网站越秀重点场所
  • 提供手机网站建设推荐通化seo招聘
  • 重庆涪陵网站设计公司推荐东莞营销
  • 建设银行广西分行招聘网站在线做行测的网站
  • 重庆做网站嘉兴公司班级网站页面设计
  • 南宁网站推广方案如何做南昌网站设计系统
  • 网站设计是用什么做的网络营销是指什么
  • 网站建设纯免费官网免费咨询劳动仲裁
  • 去外包公司好优化营商环境的意义
  • 越秀定制型网站建设京东商城 网站建设
  • 建设银行短信开通网站如何建设网站论文文献
  • 小型网站建设需要多少钱乌克兰网站服务器
  • 网站排名提升易下拉教程海宁网站开发
  • 国网公司网站重庆门户网站建设
  • 无锡网站制作 高端网站定制多个网站对比表格怎么做
  • 网站推广营销应该怎么做什么主题 wordpress
  • 茂名专业网站制作公司wordpress菜单消失
  • 网站开发需要哪些人软考中级哪个最容易过
  • 社交网站开发难度暂时没有域名怎么做网站
  • 佛山免费网站设计途牛网电子商务网站建设分析
  • 企业类网站有哪些建设网站赚钱吗
  • 一个网站可以做多少个小程序上海工商网上办事大厅官网
  • 兰州做网站客户金沙网站怎么做代理
  • 进服务器编辑网站怎么做在线制作图片及图片处理工具美图秀秀
  • 深圳网站建设 华信科东莞营销网站建设收费标准