好了,讓A
,B
,C
,D
是點在定義隨機四邊形:
- 1是段[AB]
- 2是段[BC]
- 3段[CD]
- 4是段[DA]
否w讓E
(左上),F
(右上),G
(左下),H
(右下)是矩形的點。在你的形象,你必須確定:
- 並行的由
E
方程1次通過(我們稱之爲1' )
- 並行的由
F
方程2通過(我們稱之爲2 「)
- 並行至3通過由
G
等式(讓我們稱之爲3」)
- 由
H
所述並行的方程(4)通過(讓我們稱之爲4' )
然後你可以計算它們的交點,這反過來給你你需要的線。
讓我們確定1'(其他類似):與1並行的所有行都具有與1相同的斜率。
s1 = (yB - yA)/(xB - xA)
然後1' 具有像y = s1 * x + b
等式:和該斜率s1
由下式給出。因爲我們希望這條線到達點E(xE, yE)
,我們有b
:
yE = s1 * xE + b => b = yE - s1 * xE
,然後1' 沒有公式:y = s1 * (x - xE) + yE
。類似地,對於方程y = s2 * (x - xF) + yF
,s2
,2'具有由B
和C
的座標確定,對於3'和4'同樣。
我們現在想的1' 和2' 的交集:這一點I
具有座標驗證這兩條線的方程,所以:
yI = s1 * (x - xE) + yE
yI = s2 * (x - xF) + yF
所以:
s1 * (xI - xE) + yE = s2 * (xI - xF) + yF
這給你xI
然後yI
:
xI = (s1 * xE - s2 * xF + yF - yE)/(s1 - s2)
yI = s2 * (xI - xF) + yF
= (s1 * s2 * xE - s1 * s2 * xF + s1 * yF - s2 * yE)/(s1 - s2)
您可以同樣的方式確定J
(2'和3'交叉點),K
(3'和4'交點)和L
(4'和1'交點)的座標。你需要的四邊形由這4個點組成I
,J
,K
和L
。
這是我在一個月中見過的最令人敬畏的答案。你必須掛在http://mathoverflow.net/ +1 – 2011-04-22 12:56:50
感謝您的好評,jamietre! – Emmanuel 2011-04-22 13:01:27
那是超級快速的伊曼紐爾。非常感謝你的努力。但根據你的描述,我嘗試了隨機圖紙。看看這個鏈接:http://www.4shared.com/photo/7b0CphrR/SmallQuad2.html 我該如何解決?再次感謝Emmanuel。 – 2011-04-22 13:25:06