我想使用swing製作一個繪畫程序。我有幾個用戶可以繪製的形狀,包括橢圓,線條和矩形。這些形狀可以繪製(使用graphics2d)與各種筆觸(線條粗細),可以填充或未填充。Swing paint program - 如何處理選擇?
我試圖實現一個功能,使用戶可以用鼠標右鍵單擊一個形狀並拖動它來移動它。
我目前的策略是輪詢形狀的數組是倒序(意味着在多個形狀的情況下,最近添加的形狀被選中)。
每個形狀實現都有一個名爲isSelected(int x, int y)
的方法。我需要弄清楚如何確定一個點是否落在形狀上。其中一個挑戰是,在內部點擊時不應選擇橢圓形等未填充的形狀,但應在填充後選擇它。另外,選擇應該響應中風的厚度。也就是說,如果線條使用較粗的線條而不是線條的中心,則應通過點擊外部線條來選擇線條。
我到底該如何去實施?
什麼的問題取決於「如何」你存儲的形狀。 Java的圖形2d API支持「Shape」的概念,並具有許多預定義的形狀。這些包含確定給定點是否落入其邊界的能力 – MadProgrammer
我正在存儲一個自定義類型的數組,該API實現了一個2D形狀 – Airhead