在 Igor Pro 中,實(shí)現(xiàn)多個(gè)圖像窗口聯(lián)動(dòng)縮放(zoom linkage / synchronized zooming)的方式,主要通過(guò)以下幾種方法實(shí)現(xiàn)橫軸、縱軸或圖像整體的聯(lián)動(dòng):
提供Igor軟件免費(fèi)下載,還有Igor學(xué)習(xí)交流群,需要請(qǐng)加微信15301310116。
一、使用 Control 面板實(shí)現(xiàn)縮放聯(lián)動(dòng)
創(chuàng)建多個(gè)圖形窗口并加載相應(yīng)數(shù)據(jù);
新建一個(gè) Control 面板,添加兩個(gè)數(shù)值滑塊或輸入框,控制 left 和 right(X軸范圍);
通過(guò) ModifyGraph 命令聯(lián)動(dòng)多個(gè)圖窗:
igorpro
復(fù)制編輯
ModifyGraph /W=圖窗1 left={startX, endX}
ModifyGraph /W=圖窗2 left={startX, endX}
你可以將 startX 和 endX 綁定到控制面板的變量,調(diào)整時(shí)多個(gè)圖窗一起改變。
二、通過(guò) Hook Function 實(shí)現(xiàn)交互式縮放同步
啟用鼠標(biāo)縮放 Hook Function:
設(shè)置 GraphHook,當(dāng)用戶對(duì)某個(gè)圖窗縮放時(shí),自動(dòng)觸發(fā)同步操作:
Function GraphHookFunction(s)
STRUCT WMWinHookStruct &s
if (cmpstr(s.eventName, "axisZoom")==0)
// 獲取縮放后的坐標(biāo)范圍
Variable x1, x2
GetAxis /W=$s.winName left, x1, x2
// 同步到其他圖窗
ModifyGraph /W=圖窗2 left={x1, x2}
ModifyGraph /W=圖窗3 left={x1, x2}
endif
return 0
End
注冊(cè) Hook Function 到目標(biāo)圖窗:
SetWindow 圖窗1 hook=GraphHookFunction
當(dāng)你在圖窗1中拖動(dòng)縮放,圖窗2、3會(huì)自動(dòng)跟隨。
三、利用多圖圖窗中的多軸聯(lián)動(dòng)(適用于 Overlay 情況)
如果多個(gè)圖在同一個(gè)窗口中(例如多層 overlay),可以用以下方法讓它們共用坐標(biāo)軸:
Display/N=多圖圖窗 wave1
AppendToGraph wave2
ModifyGraph axisEnab(left)={0,0} // 所有圖使用同一個(gè)左軸
四、使用 Global Variables 控制視窗范圍
創(chuàng)建兩個(gè)全局變量 gXStart, gXEnd
讓每個(gè)圖窗在更新時(shí)讀?。?/span>
ModifyGraph left={gXStart, gXEnd}
控制面板綁定 gXStart, gXEnd,或者使用腳本進(jìn)行設(shè)置。
以上是深圳市理泰儀器有限公司小編為您講解的Igor pro軟件怎么實(shí)現(xiàn)多個(gè)圖像窗口聯(lián)動(dòng)縮放,想要咨詢Igor軟件其他問(wèn)題請(qǐng)聯(lián)系15301310116(微信同號(hào))。