我需要找出,如果線段n與線段XY位於點F的同一側。確定線段是否在兩條線之間
所有的線條和線段是平行的,線段的長度是相同的。在插圖中,紅色線段AB位於(通過F點的線的左側)。藍色部分CD是正確的(出)側給出的標準。
您如何確定GeoGebra或Python中的這兩種情況?
應該考慮分段在F或E線上的特殊情況。我希望這足以解決問題。
我需要找出,如果線段n與線段XY位於點F的同一側。確定線段是否在兩條線之間
所有的線條和線段是平行的,線段的長度是相同的。在插圖中,紅色線段AB位於(通過F點的線的左側)。藍色部分CD是正確的(出)側給出的標準。
您如何確定GeoGebra或Python中的這兩種情況?
應該考慮分段在F或E線上的特殊情況。我希望這足以解決問題。
這裏是你如何能做到這一點
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更遠的平行線上。編輯:對錯誤修復抱歉
一些解釋? – iFlo
@Florian JOUFFREAU看到我上面的編輯。 – Gribouillis
我錯過了嗎?我沒有看到segment * n *標籤。 –
段* n *可能是「AB」或「CD」。他給出了兩個例子,說明segment * n *可能是 – TuanDT
也許這個[answer](http://stackoverflow.com/a/1560510/4788274)可以幫助你... –