在3d曲面上选择许多点

时间:2018-12-10 15:16:53

标签: matlab callback figure anonymous-methods

我尝试使用matlab在3D三角形曲面网格上选择(通过鼠标单击)多个点,并将其坐标保存在矩阵中。

enter image description here  事实证明,这比我预期的要臭得多。

在这里似乎回调是正确的事情。经过试验后,我最终得到:

global allPoints;
allPoints = [];
patch('Faces',T,'Vertices',V,'FaceColor','white','ButtonDownFcn',@lineCallback)
 axis equal; 
allPoints

function lineCallback(src,eventData)
   global allPoints;
   p = eventData.IntersectionPoint;
   allPoints = [allPoints;p];
end

尝试1:

以上内容虽然不美观,但允许用户单击兔子并获得积分。当我要选择一个不可见的点时,就会出现问题。在那种情况下,由于某种原因,该图不允许我旋转兔子。 (我想是因为我已经单击鼠标按钮了)。

尝试2:

当我尝试用CreateFnc替换ButtonDownFcn时出现错误:

Not enough input arguments.

Error in tzs>lineCallback (line 14)
   p = eventData.IntersectionPoint; 

这很合乎逻辑,因为我既没有定义事件数据也没有定义对象。但是,我找不到任何认真的例子可以帮助朝这个方向发展。有人可以帮忙吗?

0 个答案:

没有答案