不能袖手旁观
所以我们有线性系统:A1 * x + B1 * y = C1
A2 * x + B2 * y = C2
让我们用克莱默法则来做,这样就可以在行列式中找到解:x = Dx/D
y = Dy/D
其中,D是系统的主要决定因素:A1 B1
A2 B2
并且Dx和Dy可以从母体中找到:C1 B1
C2 B2
以及A1 C1
A2 C2
(注意,因为C列因此取代了coef。x和y列)
所以现在为了清楚起见,为了不把事情搞砸,让我们在math和python之间进行映射。我们将使用数组L来存储线方程的coefsA,B,C,而不是漂亮的x,y我们将拥有[0],[1],但无论如何。因此,我在上面所写的将在代码中有以下形式:
对于DL1[0] L1[1]
L2[0] L2[1]
对于DxL1[2] L1[1]
L2[2] L2[1]
对于DyL1[0] L1[2]
L2[0] L2[2]
现在开始编码:
line-通过两点产生线方程的coefsA,B,C,
intersection-查找coefs提供的两条线的交点(如果有)。from __future__ import division
def line(p1, p2):
A = (p1[1] - p2[1])
B = (p2[0] - p1[0])
C = (p1[0]*p2[1] - p2[0]*p
版权声明:本文为weixin_33800919原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。