【发布时间】:2014-08-28 10:33:31
【问题描述】:
我更偏向于编码方面,所以我提前为愚蠢的问题和/或糟糕的编码实践道歉。基本上,我的梦想是能够单击、放置一个压点、记录该压点的位置,然后再次单击另一个点(并记录该点的位置),直到我点击“完成”按钮。但是,我的代码是横向的。
我的按钮是使用下面的行创建的。我在代码的前面将变量 j 设置为 1,只是因为我希望能够用 CallBack 做两件事,所以我想要某种方式来指示按钮已被单击(但是,我当然是不作为一种方法附加于此)。当用户点击按钮时,我真的很想 1)新的 impoints 循环停止和 2)图像关闭。
uicontrol('Style','pushbutton','Position',[80 0 70 20],'String','Done','CallBack','j=0;');
我的 impoints 循环(删除了我认为不相关的额外内容)如下:
for k = 1:2*mboxes*nboxes
if j == 0
close(gcf);
break;
elseif j == 1
fprintf('At line 56, j is %d and k is %d\n', j, k)
h = impoint;
setColor(h,'k');
location = h.getPosition;
end
clear h;
end
目前,我的问题有两个。真的,三倍,但我可以勉强忍受第三个问题。问题1是我最关心的问题,我必须在我想要完成之前单击按钮,也就是说我单击按钮然后在窗口关闭之前设置另一个点。 (换句话说,它通过循环的次数比我想要的多一次,我不知道如何告诉它不要这样做。)问题 2,我确信应该告诉我它是如何循环的,是在我进行的过程中,imppoints 没有被删除(尽管 h 似乎在最后被删除了)。问题 3 很美观,但让我很恼火,在我点击我真正想要的位置之前,我一直在图像的左上角 (0,0) 得到一个蓝色的点。
任何帮助将不胜感激。 :)
【问题讨论】: