在數學,定位器可以通過的LocatorPane
參數被約束爲一定畫面區域(參見LocatorPane文檔。)我如何限制定位器到有限的(但不是常規的)位置?
3的列表有序對{{{minX, minY}, {maxX, maxY}, {dX, dY}}}
通常是關鍵確定定位器的行爲。 {minX, minY}
和{maxX, maxY}
設置區域。 {dX, dY}
設置跳轉大小:對於不受限制的跳轉大小:任意其他每跳跳轉大小的正數。
在下面的代碼中,{{{-.9, 0}, {1, 0}, {0, 0}}}
設置區域和跳轉爲定位器pts
。前兩個有序對將定位符限制在數字線上的區間[-9,1]。有序對{0, 0}
對任何一個定位器都沒有附加限制。但是,由於y值只能爲零,由於前兩項定義的區域,所以兩個定位器都不能離開x軸。
我想限制每個定位器的x值在myTicks
。 (在完整的程序中,根據用戶的決定,myTicks會隨時間而改變。)由於蜱不是沿着x均勻間隔的,因此無法通過爲x跳設置恆定值來解決問題。如果該值考慮了定位器的當前位置,則下一個左側跳可能與右側跳不同。
myTicks = {-.9, 0, .1, .2, .45, .79, 1};
pts = {{.25, 0}, {.75, 0}};
LocatorPane[Dynamic[pts],
Graphics[{},
Axes -> {True, False},
PlotLabel -> Row[{"locators at: " , Dynamic[pts[[1, 1]]], " and ",
Dynamic[pts[[2, 1]]]}],
Ticks -> {myTicks, Automatic}],
{{{-.9, 0}, {1, 0}, {0, 0}}}]
任何建議,將不勝感激!
順便說一下,我使用了'mouseevent'標籤,因爲我懷疑這裏可能涉及到鼠標行爲的一些細微之處。 – DavidC 2011-03-10 18:14:47