完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 一只耳朵怪 于 2018-6-22 08:44 编辑
一个matlab检测空间线段(线段,直线或射线)是否与空间三角形曲面相交的函数 在机器人领域,常常会使用obj格式的三维模型用于目标检测(测距,避障等),obj格式的三维模型通常是由若干个三角形曲面构成的网格模型,而距离传感器常常会被抽象为一条空间线段。那么在MATLAB中,有没有一个现成的函数可以检测空间曲面与线段的相交情况呢? 答案是肯定的! 这个函数叫做TriangleRayIntersection是由 Jarek Tuszynski (jaroslaw.w.tuszynski@leidos.com)编写完成的。它使用的是 Möller and Trumbore (1997)的理论。 完整代码见附件(如果您没有积分下载,请搜索Triangle/Ray Intersection 到MathWorks网站下载)。 我们通过下面一个例子来大致了解一下这个函数。 例:创建三角曲面网格模型并判断是否与给定的空间射线相交(多面/单射线类型问题) 首先我们建立三角曲面网格模型与空间射线: n=20; 之后我们调用检测函数并绘制图形: 得到结果如图一。tic; 可以看到黄色高亮的部分就是被贯穿的三角形曲面。 matlab显示: Number of: faces=722, points=400, intresections=4; time=0.173530 sec有722个三角形面,400个顶点,4个交点,用时0.173530秒(此项取决于电脑运行速度)。 除此之外,此函数还可以检测交点到原点的距离,可更改线条类型(线段,射线,直线等)。 Note : The algorithm is able to solve several types of problems:
利用此函数可以方便快捷的实现传感器模拟检测障碍物等功能。 源代码和详细例程请大家搜索 Triangle/Ray Intersection 即可,欢迎大家一起讨论! 2018年6月于法国
|
|
相关推荐
3 个讨论
|
|
|
谢谢楼主的分享。。。。
|
|
|
|
|
|
|
|
我用matlab的coder 封装了一个c语言的dll, 但是在用labview调用时,会出现识别不到库的问题,有大神遇到过吗
2862 浏览 0 评论
5281 浏览 0 评论
在matlab中如何计算含有第一类修正的贝塞尔函数的积分算不出的问题?
9079 浏览 0 评论
怎么利用matlab得到95%,80%和70%的置信区间,并生成不同区间下的功率误差贝塔分布?
10523 浏览 0 评论
请问simulink的s-function模块如何添加多输入输出接口
14705 浏览 2 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 05:51 , Processed in 0.816655 second(s), Total 49, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1217