本文介紹了畫一條連接兩個矩形的線的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在用Swing/AWT制作我自己的類圖應用程序,但我在此功能上停了下來:
我想在已經選擇的Class矩形和目標Class矩形之間畫一條線,但是LINE有一個功能,那就是每當我移動其中一個矩形時,連接它們的線就會隨著移動的矩形直線彎曲,我希望下面的圖片演示我想要實現的目標:
非常感謝通用指南或示例代碼
推薦答案
我不懂JAVA,但您可以遵循以下步驟:
找到每行矩形的中間位置(應該很簡單,只需平均x1+x2和y1+y2)
在上一步中獲得的點上使用畢達哥拉斯公式確定彼此最接近的邊。
從xa,ya(您在上面步驟中得到的第一個點)開始繪制一條線,并將其繪制在遠離矩形的方向。您應該知道此方向,因為您可以知道該點所在的線段。
對xb,yb(第二個矩形上的點)執行相同的操作。如果線條方向相反,您應該將它們繪制到xa-xb或ya-yb的中途(取決于您是水平還是垂直繪制)。如果它們是垂直的(這是正確的詞嗎?)你應該把它們畫到交叉點,所以你從xa,ya畫到xa,yb或xa,ya到xb,ya,這取決于你畫的是水平線還是垂直線。
應該有一些額外的檢查,以查看矩形是否重疊。例如,您不應該在同一方向上繪制線條。在無法確定如何繪制這些直線的情況下,您只需在這兩個點之間畫一條對角線就足夠了。
對于實現,您可以構建一個Line類,該類使用觀察器模式偵聽它跟隨的兩個矩形,這樣只要其中一個矩形移動或調整大小,它就可以自我更新。
這篇關于畫一條連接兩個矩形的線的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,