viernes, 4 de enero de 2013

Restando al Area de un Circulo con Python

Algo que suele pasar aveces es que tenemos un circulo, y dentro del circulo queremos poner otro circulo y queremos saber el area del circulo inicial restandole en area del segundo circulo.

Vamos a ilustralo con una imagen :

El area roja es el circulo1 y el area verde es el circulo2 el otro circulo de area naranja su area es el resultado de circulo1 - circulo2.

Vamos a resolver en Python con la amada POO(programacion orientada a objectos).


class Circle:
    def __init__(self,radio):
        self.radio = radio
        self.area = 3.14159*(radio*radio)

    def __sub__(self,circl):
        cir = Circle(self.radio)
        cir.area = self.area - circl.area
        return cir


c1 = Circle(10)
c2 = Circle(3)
c3 = c1-c2

print "circulo1 : {0}".format(c1.area)
print "circulo2 : {0}".format(c2.area)
print "circulo1 - circulo2 : {0}".format(c3.area)


En este caso creamos la case Circle que contiene los datos del circulo, en este caso solo usamos el area, la cual calculamos apartir del radio.

Usamos la funcion __sub__ para modificar el funcionamiento del evento restar, para hacer la simulacion de que estamos restando directamente 2 circulos.

Y el resultado claro esta :


Bastara hacer crecer la clase Circle para hacer mas operaciones con circulos, pero por ahora logramos nuestro cometido...

by Agustin Ramos Escalante
Neopathic

No hay comentarios:

Publicar un comentario