现在我用matlab读取了一个stl文件,并绘制了网格曲面,用matlab图窗的游标工具只能选取并显示三角形面片的顶点坐标,现在我想鼠标拾取该网格曲面上任意一点的坐标该如何实现呢?别人给的建议是对象检测,即检测当前鼠标点是否位于任意三角形面片上,但不知道如何写代码,求解答!
17条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
在MATLAB中实现鼠标拾取网格曲面上任意一点的坐标数据,可以借助
datacursormode
函数来实现。下面是一份示例代码:% 读取stl文件 [vertices, faces] = stlread('your_file.stl'); % 绘制网格曲面 trisurf(faces, vertices(:,1), vertices(:,2), vertices(:,3)); axis equal; % 开启游标模式 dcm_obj = datacursormode(gcf); set(dcm_obj, 'UpdateFcn', @mouseClickCallback); % 编写鼠标点击回调函数 function txt = mouseClickCallback(~, event_obj) % 获取点击坐标 pos = get(event_obj, 'Position'); txt = {['X: ', num2str(pos(1))], ['Y: ', num2str(pos(2))], ['Z: ', num2str(pos(3))]}; end
执行上述代码后,你会在MATLAB图窗上看到一个网格曲面,然后你可以使用鼠标点击浏览拾取坐标点的数值。
希望对你有所帮助!如果还有其他问题,请随时追问。
解决 3无用 1
悬赏问题
- ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
- ¥15 怎么看我在bios每次修改的日志
- ¥15 python+mysql图书管理系统
- ¥15 Questasim Error: (vcom-13)
- ¥15 船舶旋回实验matlab
- ¥30 SQL 数组,游标,递归覆盖原值
- ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
- ¥20 gitlab 中文路径,无法下载
- ¥15 用动态规划算法均分纸牌
- ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据