為什麼這篇matlab plot點大小鄉民發文收入到精華區:因為在matlab plot點大小這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者diva (Tremendo!)看板MATLAB標題[問題] 得到plot的zoom的大小時間F...
在畫圖時
figure的menu上
有可以zoom in zoom out 的兩個按鈕
可以放大和縮小圖
比方說我zoom in了兩次
我該如何讓程式知道我目前的圖已經zoom了多少次了嗎?
我的問題是發生在
我想在一張figure上
在滑鼠點擊的位置畫出一個紅色點
並且可以配合zoom in使用
程式碼如下
f=figure(1) ;
imshow('cell.tif') ;
set(f,'windowbuttondownfcn',[' ;' ...
'imshow(''cell.tif'') ;' ...
'hold on ;' ...
'CurrentPt=get(gca,''CurrentPoint'') ;' ...
'plot(CurrentPt(1,1),CurrentPt(1,2),''ro'') ;' ...
'hold off;']) ;
可是每次zoom in完
點擊下一個點後
圖片又會zoom out回原始大小
不知道有沒法可以克服
只要能得到zoom了幾次的值
或許可以利用zoom(Factor)來設定
--
我後來自己把問題解決了一半
把程式加上2行就可以了
f=figure(1) ;
imshow('cell.tif') ;
set(f,'windowbuttondownfcn',[' ;' ...
'zoom reset ;' ...
'imshow(''cell.tif'') ;' ...
'zoom out ;' ...
'hold on ;' ...
'CurrentPt=get(gca,''CurrentPoint'') ;' ...
'plot(CurrentPt(1,1),CurrentPt(1,2),''ro'') ;' ...
'hold off;']) ;
zoom reset 設定目前zoom的狀態為起始狀態
zoom out 返回zoom的原始狀態
但是還是有一個問題
這麼做的話
點選figure上的zoom out按鈕
就沒辦法恢復成圖片的原始大小了
不知道有沒有辦法可以解決
※ 編輯: diva 來自: 140.112.103.220 (05/05 20:14)
的確 如你所說
set可以解決zoom的問題
感謝!!
另外想請問一下
你提到應該用set而不是重畫
請問用set有什麼好處嗎?
因為set和重畫比起來
程式量好像差不多
針對我原來的寫法
我也找到解決的方法了
f=figure(1) ;
imshow('cell.tif') ;
set(f,'windowbuttondownfcn',[' ;' ...
' ;' ...
' ;' ...
'XLim=get(gca,''XLim'') ;' ...
'XTick=get(gca,''XTick'') ;' ...
'XTickLabel=get(gca,''XTickLabel'') ;' ...
'YLim=get(gca,''YLim'') ;' ...
'YTick=get(gca,''YTick'') ;' ...
'YTickLabel=get(gca,''YTickLabel'') ;' ...
' ;' ...
'imshow(''cell.tif'') ;' ...
' ;' ...
' ;' ...
'set(gca,''XLim'',XLim) ;' ...
'set(gca,''XTick'',XTick) ;' ...
'set(gca,''XTickLabel'',XTickLabel) ;' ...
'set(gca,''YLim'',YLim) ;' ...
'set(gca,''YTick'',YTick) ;' ...
'set(gca,''YTickLabel'',YTickLabel) ;' ...
' ;' ...
'hold on ;' ...
'CurrentPt=get(gca,''CurrentPoint'') ;' ...
'plot(CurrentPt(1,1),CurrentPt(1,2),''ro'') ;' ...
'hold off;']) ;
※ 編輯: diva 來自: 140.112.103.220 (05/05 22:29)
※ 編輯: diva 來自: 140.112.103.220 (05/05 22:30)