我正在開發一個簡單的圖形工具,使用flex在一個平面圖上繪製形狀。 首先我使用了一個簡單的20 * 20網格。在一個平面上對齊形狀,Algoryhtm
但是真正的酷東西出來他們是汽車斧頭磁鐵效應,這就是我至少看到爲什麼我的意思是我做了一個小視頻balsamiq。
正如你可以看到它對齊的垂直水平邊框和中心軸。
- 邊界:灰色軸
- 水平對齊(高度/ 2)中心:藍色斧
- 沒有垂直對齊(寬度/ 2)斧
- 的25像素一些中介填充空間:綠色軸
你認爲這樣的算法是如何工作的: 現在我會做不旋轉。
鑑於在位置中選擇的形狀S1左上x,y和的寬度瓦特高度ħ。
看交叉的兩個區域的所有形狀:
從XMIN = X,XMAX = X + W爲Y> 0。
從yming = Y,YMAX = Y +對於x> 0小時。
一旦我有形狀有關的列表中我檢查是否有任何條件相匹配:
當我使用「=」其近似+或 - 2個像素將得到想要的「磁體」效果
- S1 X = S'x =>灰色位於x線
- S1 X +瓦特位於y 位於x + W
- S1 Y = S'y =>灰線= S'x =>灰線
- S1 Y + H = S'y =>位於y + H灰線
- S1 X = S'x 和 S1 X + W = S'x + W =>藍在線X + W/2
並給予20像素
- S1 X = S'x + PADD =>在S1 GREENLINE X
- S1 X = S'x的填充磁體 - PADD => GREENLINE在S1 X
- S1 y = S'y + PADD => S1處的綠線y
- S1 y = S'y - PADD =>在S1的綠線y
你對此有何想法?
非常感謝!當我得到它的工作時,我會發布我的版本的視頻。預先填充的技巧非常棒,我也將它用於多重選中的實況高亮。 – coulix 2009-11-10 20:59:17