获取轴上鼠标的3d坐标 [英] Get 3d Coordinate Of Mouse In Axis

查看:89
本文介绍了获取轴上鼠标的3d坐标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在链接中使用以下代码来绘制鼠标在轴上的位置(鼠标在轴上移动时):

I used below code from link to plot mouse position in axes(when mouse moving in axes) :

point = get(gca, 'CurrentPoint'); % mouse click position
camPos = get(gca, 'CameraPosition'); % camera position
camTgt = get(gca, 'CameraTarget'); % where the camera is pointing to
camDir = camPos - camTgt; % camera direction
camUpVect = get(gca, 'CameraUpVector'); % camera 'up' vector
zAxis = camDir/norm(camDir);
upAxis = camUpVect/norm(camUpVect);
xAxis = cross(upAxis, zAxis);
yAxis = cross(zAxis, xAxis);

rot = [xAxis; yAxis; zAxis]; % view rotation
rotatedPointFront = rot * point' ;
plot3(rotatedPointFront(1),rotatedPointFront(2),rotatedPointFront(3), 'r.','MarkerSize', 20)

但绘制位置与鼠标位置不同.

but plotted position differs from mouse location.

推荐答案

最终找到了另一个解决方案: http://www.mathworks.com/matlabcentral/fileexchange/1600-dispcoord1 -2-m

Finally Found Another Solution : http://www.mathworks.com/matlabcentral/fileexchange/1600-dispcoord1-2-m

hold on;
pos=get(gca,'CurrentPoint');
POS=mean(pos);
POS=round(POS*1000)/1000;
disp(POS);
plot3(POS(1),POS(2),POS(3),'r.', 'MarkerSize', 10);

这篇关于获取轴上鼠标的3d坐标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆