獲取矩形中心點與矩形外某點連線和矩形交點的演算法

2022-02-01 20:15:48 字數 1668 閱讀 4878

圖形化廣泛應用於各種系統中,包括esb的適配,業務流程的建模,工作流程的定製,資料交換系統的配置等等,這其中不可避免的需要用到各種圖形符號來直觀、清晰的表達抽象的內容。一般來說,我們會通過標準的圖形來表述特定的含義,達到交流的目的,而圖形間資訊導向一般都是通過線來完成的,乙個好的畫線演算法,不僅能夠讓業務或者配置圖更加美觀,也更能清晰的向受眾表述業務或者配置內容。

本文實現了乙個獲取矩形中心點與矩形外某點連線與矩形交點的演算法。實現語言為actionscript。

1/**

2* 獲得乙個矩形中心點到矩形外某點之間的連線與矩形的交點

3* 演算法思路:

4* 以矩形外的某點為座標原點,將圖形分為四個象限,每個象限分兩種情況,座標軸上單獨處理

5* 1.座標軸的情況:

6* 1.負x軸的情況

7* 2.正x軸的情況

8* 3.正y軸的情況

9* 4.負y軸的情況

10* 2.象限情況:

11* 2.1.第一象限:連線與矩形左邊相交的情況;與矩形下邊相交的情況

12* 2.2.第二象限:連線與矩形右邊相交的情況;與矩形下邊相交的情況

13* 2.3.第三象限:連線與矩形右邊相交的情況;與矩形上邊相交的情況

14* 2.4.第四象限:連線與矩形左邊相交的情況;與矩形上邊相交的情況

15*

16*

*/17

private

function

getintersectpoint(fromnode:rectangle,endpoint:point):point

1847

//正x軸

48else

if(y1

==y2

&&x1

>

x2)49

52//

正y軸53

else

if(x1

==x2

&&y1

<

y2)54

57//

負y軸58

else

if(x1

==x2

&&y1

>

y2)59

62//

第一象限

63if

(x1>

x2&&

y1<

y2)64

69else

7073}74

//第二象限

75else

if(x1

<

x2&&

y1<

y2)76

82else

838687}

88//

第三象限

89else

if(x1

<

x2&&

y1>

y2)90

95else

9699

}100

//第四象限

101else

if(x1

>

x2&&

y1>

y2)102

107else

108111

}112

return

returnpoint;

113}

114

求取多邊形矩形包圍框的中心點方法

今天下午做了一下遊戲功能的擴充,不料又落馬了,記錄一下 求取多邊形的中心位置 該方法是最原始版,之前因為用的少,所以沒有發覺到邏輯上存在錯誤 added by bruce yang on 2012.09.02.15.30 實踐證明,這個方法的邏輯是錯誤的,汲取這個教訓 b2vec2 getpolyc...

線段 矩形 矩形與矩形 相交

csharp view plain copy print?功能 判斷線段和矩形是否相交 先判斷線段的倆個端點是否在矩形的內部,在就必然相交 其次判斷線段的包圍盒是否和矩形相交,不相交的話線段和矩形肯定也不相交 最後判斷,矩形的四個頂點是否位於線段的兩側,是則必然相交,否則就不相交 csharp vi...

vue amap圓形編輯完獲取半徑中心點

1.今天做專案時候 用vue的外掛程式 vue amap圓形編輯,但是有個問題,就是說,新增圓時候 我給了 預設值,但是最後向後台傳引數的時候,還是傳的預設值,就是說 新圓的半徑沒有賦值給舊圓,2.繼續找 3.找到了 events 事件,move 編輯狀態下,拖拽圓心調整圓形位置時觸發此事件type...