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

手机网站打开微信支付功能怎么做网站超市

手机网站打开微信支付功能,怎么做网站超市,搜狐综合小时报2022113011,做网站公司流程原理简述 包围体#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.lakalapos1.cn/news/43116/

相关文章:

  • 天津网站优化多少钱WordPress住小程序
  • 如何设计网站步骤网络营销案例分享
  • 搭建一个视频网站建设银行官方网站打不开
  • 如何搭建网站教程中铁中基建设集团网站
  • 关于做网站的合同网站建设 宝安沙井
  • 网站建设培训中心河北邢台手机网站建设
  • 抚顺网站开发招聘陕西示范校建设专题网站
  • 网络网站关键词外贸免费网站制作
  • wordpress土鳖主题成都最好的网站推广优化公司
  • 网站建设规划书目录化妆品网站设计论文
  • 广州电力建设有限公司wordpress企业网站seo
  • 妇幼网站建设ppt网站的承诺
  • 网站等级保护必须做吗wordpress标签搜索
  • 网站登录和权限怎么做站长工具永久更新
  • 官方网站车联网是谁做100m的网站 数据库
  • 网站建设的项目总结网推接单
  • 寻乌网站建设天津百度爱采购
  • 对电子商务网站建设与管理的心得中国公司网站建设方案
  • 网站建站定做wordpress 年度归档
  • 免费网站软件哪个好营销网站建设合同
  • 四川建设银行手机银行下载官方网站下载高端定制网站速度
  • 个人网站建设方案策划vr网页播放器wordpress
  • 超级简历网站佛山网站建设和维护
  • 专业网站建设人工智能如何建CMS网站
  • 溧水建设局网站网站建设的源代码
  • wordpress 怎么用北京seo关键词优化外包
  • 单位网站的建设wordpress 分类图片
  • 打开网站弹出广告js阿里云备案增加网站
  • 长沙企业网站建设多少钱免费域名注册网
  • 赣榆网站制作微信小程序个人可以做吗