現在我有一個使用Graphics(drawLine,drawArc等)繪製的籃球場,並且有一個mouseClicked事件,它會根據是否在場上繪製'X'或'O' boolean shotMade是true(在底部框架中使用「Make」和「Miss」按鈕進行設置)。現在,我實際上會在getX() - 6和getY()+ 6上產生'X'或'O',這樣'X'或'O'的中心將被繪製在點擊鼠標(使用g.drawString()將從左下角開始繪製'X'或'O',所以它不直接居中)。在橢圓上存儲點:Java
我的問題來自於我對兩指針和三指針的區分。現在,在三點線上的法院角落裏,在x值爲52和448的地方有垂直的直線,所以我知道任何一個x小於52或大於448的單擊點都是三個點作爲任何具有超過250的y值的點,表示關鍵點的頂部或沿着弧線的任何點處的最高y值。爲了確定三個或兩個圓弧的位置,我有一個想法,即將用於繪製圓弧的每個x和y像素存儲到兩個ArrayList(一個用於x,一個用於y),並且當鼠標是點擊一個點,它會搜索列表中的x值,然後檢查y點是否大於列表中相應點的點。我用g.drawArc(52,-110,396,360,0,-180)繪製了弧線,將它的中心放在點(250,70)處。
因此,使用所有這些信息,我首先想知道如何使用一些公式來計算每個像素值到ArrayList中,然後如何檢查點擊點確實是三到兩個。
任何幫助表示讚賞,包括任何更有效的想法或其他想法。謝謝!
這對我來說實際上是一個新概念,但Area類似乎在這種情況下對我更有用。現在,當我在構造函數中傳遞一個形狀對象時,我將如何製作它以便它使用我繪製的弧線? – robert825
其實,試着看看界面Shape的所有實現類:http://docs.oracle.com/javase/7/docs/api/java/awt/Shape.html ....如果你可以表示你的弧爲其中之一,那麼你也有包含方法。 Arc2D可能是有用的,但我認爲你需要在所有方面定義整個形狀,所以看看使用多邊形,並將你的弧點與球場末端的點連接起來形成一個形狀。 – Drifter64
看起來Arc2D實際上可以爲它工作,並且我知道如何使用Area類。非常感謝! – robert825