好了,让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