2012-11-05 55 views
3

我在具有已知坐标x,y,z的3-D轴上有一个对象。我想移动对象上的指针。我知道有一个名为moveptr的未公开的函数,但不幸的是它不支持三维坐标轴。我试图将三维坐标投影到坐标轴的二维坐标上,但感觉错了,结果是错误的,即它将指针移动到了错误的位置。将指针移动到对象上(MATLAB)

mvpt= view * [x y z 1]' 
mvpt=mvpt(1:2) 
moveptr(handle(gca),'init') 
moveptr(handle(gca),'move',mvpt(1),mvpt(2)) 

其他建议?

回答

1

我认为你应该在同一个图上叠加一个2-D轴,在这个图上你有3D对象的投影。这不完全是你在这里做什么,我不知道什么是视图的单一输出(我总是在我的3D作品中使用方位角和仰角...)

如何将3D结构投影到2D上已在其他地方解释:http://www.mathworks.com/matlabcentral/newsreader/view_thread/169417

然后,您可以在新轴上使用moveptr,然后擦除2D图和坐标轴。这有点脏,但它应该做的。

+0

这是一个好主意!但是,要确定正确的轴限制和您建议的虚拟轴的位置是非常困难的。有关于此的任何想法? – bop

+0

如果我是你,我会做试验和错误......除非你有很多数学抽象技能,你可以把投影面积的计算和定位放在纸上。这不是关于matlab的,而是关于现在纯粹的数学。但至少我给了你一条路:)。祝你好运! – Wli

+0

如果最终能为您解决问题,请您将它投票并将其标记为答案?如果是这样,请总结一下你做了什么(并且将你的帖子标记为答案而不是我的答案)。谢谢! – Wli