[计算几何]求两个直线交点坐标-创新互联
上一篇文章已经讲了若一直线过 A ( X 1 , Y 1 ) A(X_1,Y_1) A(X1,Y1), B ( X 2 , Y 2 ) B(X_2,Y_2) B(X2,Y2) 两点的解析式求法
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了弥勒免费建站欢迎大家使用!其 a x + b y + c = 0 ax+by+c=0 ax+by+c=0形式的解析式 a = ( Y 1 − Y 2 ) , b = ( X 2 − X 1 ) , c = ( X 1 ∗ Y 2 − Y 1 ∗ X 2 ) a=(Y_1-Y_2),b=(X_2-X_1) ,c=(X_1*Y_2-Y_1*X_2) a=(Y1−Y2),b=(X2−X1),c=(X1∗Y2−Y1∗X2)
我们能求得 两个直线解析式分别为 a 1 x + b 1 y + c 1 = 0 a_1x+b_1y+c_1=0 a1x+b1y+c1=0和 a 2 x + b 2 y + c 2 = 0 a_2x+b_2y+c_2=0 a2x+b2y+c2=0
- 求x坐标
y = − a 1 x − c 1 b 1 y=\frac{-a_1x-c_1}{b_1} y=b1−a1x−c1, y = − a 2 x − c 2 b 2 y=\frac{-a_2x-c_2}{b_2} y=b2−a2x−c2
− a 1 x − c 1 b 1 = − a 2 x − c 2 b 2 \frac{-a_1x-c_1}{b_1}=\frac{-a_2x-c_2}{b_2} b1−a1x−c1=b2−a2x−c2
( − a 1 x − c 1 ) b 2 = ( − a 2 x − c 2 ) b 1 (-a_1x-c_1)b_2=(-a_2x-c_2)b_1 (−a1x−c1)b2=(−a2x−c2)b1
− a 1 b 2 x − c 1 b 2 = − a 2 b 1 x − c 2 b 1 -a_1b_2x-c_1b_2=-a_2b_1x-c_2b_1 −a1b2x−c1b2=−a2b1x−c2b1
a 2 b 1 x − a 1 b 2 x = c 1 b 2 − c 2 b 1 a_2b_1x-a_1b_2x=c_1b_2-c_2b_1 a2b1x−a1b2x=c1b2−c2b1
( a 2 b 1 − a 1 b 2 ) x = c 1 b 2 − c 2 b 1 (a_2b_1-a_1b_2)x=c_1b_2-c_2b_1 (a2b1−a1b2)x=c1b2−c2b1
x = c 1 b 2 − c 2 b 1 a 2 b 1 − a 1 b 2 x=\frac{c_1b_2-c_2b_1}{a_2b_1-a_1b_2} x=a2b1−a1b2c1b2−c2b1
- 求y坐标
x = − b 1 y − c 1 a 1 x=\frac{-b_1y-c_1}{a_1} x=a1−b1y−c1, x = − b 2 y − c 2 a 2 x=\frac{-b_2y-c_2}{a_2} x=a2−b2y−c2
− b 1 y − c 1 a 1 = − b 2 y − c 2 a 2 \frac{-b_1y-c_1}{a_1}=\frac{-b_2y-c_2}{a_2} a1−b1y−c1=a2−b2y−c2
( − b 1 y − c 1 ) a 2 = ( − b 2 y − c 2 ) a 1 (-b_1y-c_1)a_2=(-b_2y-c_2)a_1 (−b1y−c1)a2=(−b2y−c2)a1
− b 1 a 2 y − c 1 a 2 = − b 2 a 1 y − c 2 a 1 -b_1a_2y-c_1a_2=-b_2a_1y-c_2a_1 −b1a2y−c1a2=−b2a1y−c2a1
b 2 a 1 y − b 1 a 2 y = c 1 a 2 − c 2 a 1 b_2a_1y-b_1a_2y=c_1a_2-c_2a_1 b2a1y−b1a2y=c1a2−c2a1
( b 2 a 1 − b 1 a 2 ) y = c 1 a 2 − c 2 a 1 (b_2a_1-b_1a_2)y=c_1a_2-c_2a_1 (b2a1−b1a2)y=c1a2−c2a1
y = c 1 a 2 − c 2 a 1 b 2 a 1 − b 1 a 2 y=\frac{c_1a_2-c_2a_1}{b_2a_1-b_1a_2} y=b2a1−b1a2c1a2−c2a1
c++ 代码
Point GSP(Line t1,Line t2){Point t;
double a1=t1.a.Y-t1.b.Y,b1=t1.b.X-t1.a.X,c1=t1.a.X*t1.b.Y-t1.b.X*t1.a.Y;
double a2=t2.a.Y-t2.b.Y,b2=t2.b.X-t2.a.X,c2=t2.a.X*t2.b.Y-t2.b.X*t2.a.Y;
t.X=(c1*b2-b1*c2)/(b1*a2-a1*b2);t.Y=(c1*a2-a1*c2)/(a1*b2-b1*a2);
return t;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:[计算几何]求两个直线交点坐标-创新互联
新闻来源:http://cdiso.cn/article/depged.html