2010-08-26 80 views
5

Schematic線與矩形之間的交點

我有一個由角度α定義的給定線R。 R通過我的飛機的起源。我也有一個矩形,具有已知的寬度和高度。矩形的原點左下角。

一條與R平行的新線由距R的距離L定義(以A,B和C爲例)。我想找出新線與矩形相交的點(如線A的P1和P2,B的P3和P4,以及C的P5和P6)。

找到它的最佳方法是什麼?

+0

最好的方法可能是http://math.stackexchange.com/ :) – sth 2010-08-26 14:28:39

+0

L如何爲R的每一邊定義? R可以具有負斜率還是α始終爲0-90度? – phkahler 2010-08-26 17:25:41

回答

1
  1. 知道R(x)和距離L可以很容易地得到B(x)的
  2. 矩形可被表示爲4行,即4簡單的函數R1(x)中,R 2(X)中,R 3功能(x),R4(x)
  3. 您必須解決4個組合等式:{A(x); R1(x)},{A(x); R2(x)}等
  4. 檢查發現的十字路口用直線表示矩形的邊界是否使用矩形的基點,寬度和高度(以及一般情況下的傾斜角)
4

使用此頁 http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/

它給出了兩條線的交點公式。與分別構成矩形的4條線相交,然後檢查u_a(由矩形線參數化的交點)是否在正確的邊界之間,以確保您的線不與矩形外部的線相交。

請注意,您需要的實際點不是角度,但計算它們非常容易。 (0,0) - >(cos(a),sin(a))

線x距離它的距離,並行是 (0,0)+ x *(sin(因爲您可以注意到,(sin(a)) - >(cos(a),sin(a))+ x *(sin(a), - cos(a))。 a),-cos(a))只是一個垂直於你的線的單位長度矢量,所以你只需將它添加到形成原始線的兩點上。