2016-12-16 74 views
-1

我需要找出,如果線段n與線段XY位於點F的同一側。確定線段是否在兩條線之間

所有的線條和線段是平行的,線段的長度是相同的。在插圖中,紅色線段AB位於(通過F點的線的左側)。藍色部分CD是正確的(出)側給出的標準。

您如何確定GeoGebra或Python中的這兩種情況?

應該考慮分段在F或E線上的特殊情況。我希望這足以解決問題。

Parallel lines

+0

我錯過了嗎?我沒有看到segment * n *標籤。 –

+0

段* n *可能是「AB」或「CD」。他給出了兩個例子,說明segment * n *可能是 – TuanDT

+4

也許這個[answer](http://stackoverflow.com/a/1560510/4788274)可以幫助你... –

回答

2

這裏是你如何能做到這一點

u = (y[1]-y[0], x[0]-x[1]) 
delta = f[0] * u[0] + f[1] * u[1] 
if delta < x[0]*u[0]+x[1]*u[1]: 
    delta = -delta 
    u = (-u[0], -u[1]) 
assert a[0] * u[0] + a[1] * u[1] < delta 
assert b[0] * u[0] + b[1] * u[1] < delta 
assert c[0] * u[0] + c[1] * u[1] > delta 
assert d[0] * u[0] + d[1] * u[1] > delta 

解釋:矢量u垂直於XY。具有u的給定標量積的點形成平行於XY的線。對於F此標量產品是delta。通過可選地改變u的符號,對於F,可以具有比對於X更大的delta。現在,具有u的標量積大於δ的點位於比F點距XY更遠的平行線上。編輯:對錯誤修復抱歉

+0

一些解釋? – iFlo

+1

@Florian JOUFFREAU看到我上面的編輯。 – Gribouillis

相關問題