forked from bedohswe/p3he
15 lines
675 B
Python
15 lines
675 B
Python
def LineIntersection(rX1,rY1,rX2,rY2,rX3,rY3,rX4,rY4):
|
|
rX = ( (rX1*rY2-rY1*rX2)*(rX3-rX4)-(rX1-rX2)*(rX3*rY4-rY3*rX4) ) / ( (rX1-rX2)*(rY3-rY4)-(rY1-rY2)*(rX3-rX4) )
|
|
rY = ( (rX1*rY2-rY1*rX2)*(rY3-rY4)-(rY1-rY2)*(rX3*rY4-rY3*rX4) ) / ( (rX1-rX2)*(rY3-rY4)-(rY1-rY2)*(rX3-rX4) )
|
|
return (rX, rY)
|
|
|
|
def cLineIntersection(cA0, cA1, cB0, cB1):
|
|
rX, rY = LineIntersection(cA0.real, cA0.imag, cA1.real, cA1.imag, cB0.real, cB0.imag, cB1.real, cB1.imag)
|
|
return complex(rX, rY)
|
|
|
|
def Between(rA,rB,rN):
|
|
return (rA < rN and rN < rB) or (rB < rN and rN < rA)
|
|
|
|
def cBetween(cA,cB,cN):
|
|
return Between(cA.real,cB.real,cN.real) and Between(cA.imag,cB.imag,cN.imag)
|