我尝试使用matlab在3D三角形曲面网格上选择(通过鼠标单击)多个点,并将其坐标保存在矩阵中。
在这里似乎回调是正确的事情。经过试验后,我最终得到:
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;
这很合乎逻辑,因为我既没有定义事件数据也没有定义对象。但是,我找不到任何认真的例子可以帮助朝这个方向发展。有人可以帮忙吗?