两条垂直的直线,一条经过(x1,y1) (x2,y2),另一条经过(x3,y3) (x4,y4),求交点的坐标.

两条垂直的直线,一条经过(x1,y1) (x2,y2),另一条经过(x3,y3) (x4,y4),求交点的坐标.
我手头上已经有一种算法和我自己的不一样,我没能看懂
a=(x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)/(y2-y1)*(x4-x3)-(x2-x1)*(y4-y3)
x=x3+a*(x4-x3)
y=y3+a*(y4-y3)
雪松绽梅 1年前 已收到3个回答 举报

wku4d 幼苗

共回答了18个问题采纳率:77.8% 举报

是用向量证的
为叙述方便,记B(x1, y1) ,D(x2, y2),A(x3,y3),C (x4,y4)
设交点为P,向量AP=a*向量AC(其实a就是你答案中的那一串)
则向量BP=向量BA+向量AP=向量BA+a*向量AC=(x3-x1,y3-y1)+a*(x4-x3,y4-y3)
=(x3-x1+a(x4-x3),y3-y1+a(y4-y3))
又向量BD平行于向量BP,由向量共线得
(x3-x1+a(x4-x3))*(y2-y1)=(y3-y1+a(y4-y3))*(x2-x1)
解得a=(x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)/(y2-y1)*(x4-x3)-(x2-x1)*(y4-y3)
故向量OP=向量OA+向量AP=向量OA+a*向量AC=(x3+a*(x4-x3),y3+a*(y4-y3))
从而x=x3+a*(x4-x3)
y=y3+a*(y4-y3)

1年前

7

云卷云飞扬 幼苗

共回答了1个问题 举报

我写出我的答案 不知道是不是错的 错的话请不要骂我 不过请说出正解 我的答案是这样的;
交点的坐标是(x1, y3);(x1, y4);(x2, y3);(x2, y4)

1年前

2

bluesaten 幼苗

共回答了15个问题 举报

设点坐标为(x,y)两直线垂直,斜率之积是-1
(y2-y1)/(x2-x1)*(y4-y3)/(x4-x3)=-1
然后把任意一条直线方程求出来,点在直线上,就可以算出结果

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.038 s. - webmaster@yulucn.com