From 832156e8f9a48afb3e016f02a6fb96306ab0de0c Mon Sep 17 00:00:00 2001 From: CarlosC Date: Mon, 28 Jan 2013 00:49:40 +0000 Subject: Calculo de la pelota con relacion al arco --- diff --git a/example.py b/example.py index 5cdebf4..2d2aaa2 100755 --- a/example.py +++ b/example.py @@ -42,7 +42,7 @@ class MyApp(): #imagen de fondo self.pixbuf = gtk.gdk.pixbuf_new_from_file('images/arco.jpg') - window.connect('destroy', self.destroy) + window.connect("destroy", lambda w: gtk.main_quit()) self.drawing_area.connect('configure_event', self.__configure_cb) self.drawing_area.connect('expose-event', self.__expose_cb) @@ -61,8 +61,7 @@ class MyApp(): #invocacion de la funcion que realiza loop del slider horizontal gobject.timeout_add(DELAY, self.__hslider_move_cb) - - + #funcion que se activa al presionar cualquier tecla y pregunta sobre el estado de los indicadores def __key_press_event_cb(self, window, event): gobject.timeout_add(DELAY, self.__vslider_move_cb) @@ -111,7 +110,7 @@ class MyApp(): self.indicator_x = 0 #impresion temporal de prueba - print self.cv_x + #print self.cv_x #funcion que captura el valor del slider vertical despues de pulsar una tecla def capturar_valor_vslider_cb(self): @@ -119,10 +118,6 @@ class MyApp(): #variable en donde se captura el valor al presionar un tecla self.vslide_value = self.vslide.get_value() - #valida el estilo del area de dibujo - self.style = self.drawing_area.get_style() - self.gc = self.style.fg_gc[gtk.STATE_NORMAL] - #convierte el valor de changed_value a int self.cv_y = (((int(self.vslide_value)) * 600) / 100) @@ -133,15 +128,48 @@ class MyApp(): self.indicator_y = 0 #impresion temporal de prueba - print self.cv_y + #print self.cv_y + + self.dimensiones_arco() #funcion que dibuja la pelota def draw_ball(self, x, y): - self.drawing_area.window.draw_arc(self.gc, False, x, y, 70, 70, 0, 360*64) - - def destroy(self, window, data=None): - gtk.main_quit() - + c_x = x + c_y = y + c_a = 70 + c_l = 70 + self.canvas.draw_arc(self.context, True, c_x, c_y, c_a, c_l, 0, 360*64) + pi = 3.14159265 + r = 35 + area_pelota = pi * (r ** 2) + #msg = "area pelota" + #print msg + "" + str(area_pelota) + + self.calculo_gol(c_x, c_y) + + def calculo_gol(self, c_x, c_y): + if c_x > 58 and c_y > 144 and c_x < 58+507 and c_y < 144+324: + print "gol" + + def dimensiones_arco(self): + #Coordenadas del rectangulo del travesanho + t_x = 46 + t_y = 133 + t_a = 507 + t_l = 336 + #Coordenadas del rectangulo interior del arco + i_x = 58 + i_y = 144 + i_a = 484 + i_l = 324 + #Dibujo temporal de los rectangulos del travesanho y el interior + self.travesanho = self.canvas.draw_rectangle(self.context, False, t_x, t_y, t_a, t_l) + self.interior_arco = self.canvas.draw_rectangle(self.context, False, i_x, i_y, i_a, i_l) + self.area_travesanho = t_l * t_a + self.area_interior_arco = i_l * i_a + #print self.area_travesanho + #print self.area_interior_arco + def __configure_cb(self, drawing_area, data=None): x, y, width, height = drawing_area.get_allocation() @@ -154,10 +182,11 @@ class MyApp(): def __expose_cb(self, drawing_area, data=None): x, y, width, height = data.area - context = drawing_area.get_style().fg_gc[gtk.STATE_NORMAL] + style = drawing_area.get_style() + self.context = style.fg_gc[gtk.STATE_NORMAL] - canvas = drawing_area.window - canvas.draw_drawable(context, self.pixmap, x, y, x, y, width, height) + self.canvas = drawing_area.window + self.canvas.draw_drawable(self.context, self.pixmap, x, y, x, y, width, height) return False -- cgit v0.9.1