找回密码
 注册
Simdroid-非首页
查看: 458|回复: 17

【请教】如何在三维坐标中提取鼠标位置?

[复制链接]
发表于 2005-1-24 21:31:52 | 显示全部楼层 |阅读模式 来自 上海
最近翻了翻三维绘图方面的书,想把手中的栅格图做成三维坐标显示,可是有一个技术难题。如何在三维坐标中捕捉鼠标的位置啊?
多谢!
发表于 2005-1-24 23:33:20 | 显示全部楼层 来自 湖北武汉

Re:【请教】如何在三维坐标中提取鼠标位置?

Simdroid开发平台
axes currentpoint [x1 y1 z1; x2 y2 z2]就是呀?
发表于 2005-1-25 03:59:12 | 显示全部楼层 来自 陕西西安

Re:【请教】如何在三维坐标中提取鼠标位置?

轴的‘currentpoint’是个只读属性,



get(gca,'currentpoint')

ans =

         0  ,   0.0060    ,0.7076
    0.0082     ,    0   , 0.9013

坐标轴是一个立方体,看到的只是其投影,
鼠标的点击相当于垂直于纸面画线,这条线和立方体(轴)有两点交点,
即为‘currentpoint’的值。
发表于 2005-1-25 04:02:05 | 显示全部楼层 来自 陕西西安

Re:【请教】如何在三维坐标中提取鼠标位置?

顺便再问一下
axis的'drawmode'设为'normal' 或 'fast'有什么区别。
 楼主| 发表于 2005-1-25 12:03:19 | 显示全部楼层 来自 上海

Re:【请教】如何在三维坐标中提取鼠标位置?

谢谢各位!
可是如何在轴的内部取值啊?因为实际操作中经常要选择轴内部的一些点,就是在这两个点之间的一些点中怎么确定一个合适的位置?不知道该怎么办?
谢谢!
 楼主| 发表于 2005-1-25 12:09:02 | 显示全部楼层 来自 上海

Re:【请教】如何在三维坐标中提取鼠标位置?

EraseMode的解释在这里:
http://www.simwe.com/forum/viewthread.php?tid=278611
而drawmode我一般用‘fast’,具体的区别我也不太明白。
发表于 2005-1-25 14:34:27 | 显示全部楼层 来自 陕西西安

Re:【请教】如何在三维坐标中提取鼠标位置?

我是这样想的:
在你所要选取的点上点击一下,可以得到一条直线,
换一个视角,再在所选点处再点击,得到另一条直线,
这两条直线不可能严格相交,可以取其公垂线中点。
发表于 2005-1-25 16:28:43 | 显示全部楼层 来自 浙江杭州

Re:【请教】如何在三维坐标中提取鼠标位置?

drawmode 在normal的时候是根据当前视角自最底层往最上层来对axes上的图像填充作图
fast的话将根据你的绘图命令来作图而不考虑对象间的关系,可以加快速度
但3D作图有可能有时候会有问题
 楼主| 发表于 2005-1-25 18:32:47 | 显示全部楼层 来自 上海

Re:【请教】如何在三维坐标中提取鼠标位置?

在实际的使用中,这个视角即使改变了,也不好记住原来来一条线吧。不然操作太困难了,应该有更简单的方法吧。
在AutoCAD中是怎么处理的啊?那也是三维视图的。
发表于 2005-1-25 23:34:00 | 显示全部楼层 来自 陕西西安

Re:【请教】如何在三维坐标中提取鼠标位置?

cwit兄,不知道你具体要完成什么样的操作,如果是通过鼠标两次点击求取三维图形中一个点的坐标还是可以的。

比如求球的中心点坐标
(见: http://www.simwe.com/forum/viewthread.php?tid=401895 )
点中心点大概的位置后
k=get(gca,'currentpoint');
line(k(:,1),k(:,2),k(:,3),'color','red','linewidth',2);
换个视角再点中心点
k=get(gca,'currentpoint');
line(k(:,1),k(:,2),k(:,3),'color','red','linewidth',2);
便得到下面的图

不知道有什么简便方法求两条直线公垂线的中点。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2005-1-26 02:01:20 | 显示全部楼层 来自 湖北武汉

Re:【请教】如何在三维坐标中提取鼠标位置?

搞一个亮点在直线上拖
 楼主| 发表于 2005-1-26 13:36:58 | 显示全部楼层 来自 上海

Re:【请教】如何在三维坐标中提取鼠标位置?

比如这张三维建筑图,我想选择某一栋建筑物,应该怎么选择啊?
多谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2005-1-26 15:58:23 | 显示全部楼层 来自 湖北武汉

Re:【请教】如何在三维坐标中提取鼠标位置?

求currentpoint的两点连线与surf表面的第一个交点,
打个比方就是用一颗子弹射进去,然后在图找洞
 楼主| 发表于 2005-1-26 22:15:14 | 显示全部楼层 来自 上海

Re:【请教】如何在三维坐标中提取鼠标位置?

有可能打穿两个洞也?
这是一个二维矩阵生成的图像,然后用三维方式显示的。
另外如果套几个图层上去,不知道会是什么样的效果?
发表于 2005-2-5 23:04:50 | 显示全部楼层 来自 四川绵阳

Re:【请教】如何在三维坐标中提取鼠标位置?

我是刚学matlab,对这部分内容不了解,不过三维造型用过一段时间,在一般的三维造型软件里,选点实际上是在数模的表面捕捉点,如果多点重叠就必须更换角度才能选对,如果只是选择最外面的点可以先隐藏被遮住的部分(消隐)在选取。如果你有该图的数模,那么鼠标点选x,y的同时z可以在数模上插值得到。
 楼主| 发表于 2005-2-15 12:20:02 | 显示全部楼层 来自 上海

Re:【请教】如何在三维坐标中提取鼠标位置?

多谢你的帮助!
发表于 2005-8-4 11:53:47 | 显示全部楼层 来自 陕西西安

Re:【请教】如何在三维坐标中提取鼠标位置?

现在觉得snow_man_0"“求currentpoint的两点连线与surf表面的第一个交点"这句话说的真倒位,打游戏时点倒哪即走到哪大概就是这样做的。
发表于 2005-8-8 08:47:20 | 显示全部楼层 来自 重庆

Re:【请教】如何在三维坐标中提取鼠标位置?

请教高手,上面你说的我想问一下,如何在三维曲线上做一个亮点然后拖动它,让它显示他所经过的三维坐标呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 20:38 , Processed in 0.066776 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表