189 8069 5689

[计算几何]求两个直线交点坐标-创新互联

上一篇文章已经讲了若一直线过 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 a1​x+b1​y+c1​=0和 a 2 x + b 2 y + c 2 = 0 a_2x+b_2y+c_2=0 a2​x+b2​y+c2​=0

  • 求x坐标

y = − a 1 x − c 1 b 1 y=\frac{-a_1x-c_1}{b_1} y=b1​−a1​x−c1​​, y = − a 2 x − c 2 b 2 y=\frac{-a_2x-c_2}{b_2} y=b2​−a2​x−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​−a1​x−c1​​=b2​−a2​x−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 (−a1​x−c1​)b2​=(−a2​x−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 −a1​b2​x−c1​b2​=−a2​b1​x−c2​b1​

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 a2​b1​x−a1​b2​x=c1​b2​−c2​b1​

( 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 (a2​b1​−a1​b2​)x=c1​b2​−c2​b1​

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=a2​b1​−a1​b2​c1​b2​−c2​b1​​

  • 求y坐标

x = − b 1 y − c 1 a 1 x=\frac{-b_1y-c_1}{a_1} x=a1​−b1​y−c1​​, x = − b 2 y − c 2 a 2 x=\frac{-b_2y-c_2}{a_2} x=a2​−b2​y−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​−b1​y−c1​​=a2​−b2​y−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 (−b1​y−c1​)a2​=(−b2​y−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 −b1​a2​y−c1​a2​=−b2​a1​y−c2​a1​

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 b2​a1​y−b1​a2​y=c1​a2​−c2​a1​

( 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 (b2​a1​−b1​a2​)y=c1​a2​−c2​a1​

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=b2​a1​−b1​a2​c1​a2​−c2​a1​​

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元起,快前往官网查看详情吧


文章标题:[计算几何]求两个直线交点坐标-创新互联
分享URL:http://cdxtjz.cn/article/depged.html

其他资讯