Cálculo del punto de intersección de 2 líneas

#!/usr/bin/python
# coding=utf-8
#Calcula el punto de intersección de 2 líneas
class punto:
  def __init__(self,x,y):
    self.x = x
    self.y = y
  def __str__(self):
    return "("+str(self.x)+","+str(self.y)+")"
class linea:
  def __init__(self, p0, p1):
    self.p0 = p0
    self.p1 = p1
    self.A = p1.x - p0.x
    self.B = p1.y - p0.y
    self.C = p1.x*p0.y - p0.x*p1.y
  def intersecta(self, otro):
    det = self.A*otro.B - otro.A*self.B
    x = otro.A*self.C-self.A*otro.C
    y = otro.B*self.C-self.B*otro.C
    return punto(x/det,y/det)
   
  def __str__(self):
    return str(self.p0) + "," + str(self.p1)
   
if __name__=="__main__":
  L1 =linea(punto(5.8,0.9),punto(10.1,10.2))
  L2 =linea(punto(12.5,0.0),punto(1.1,13.5)) 
  print L1,L2
  print "Punto de intersección:"+str(L1.intersecta(L2))

No hay comentarios:

Publicar un comentario