Canvas

Chema Cortes py en ch3m4.org
Lun Jul 24 11:55:33 CEST 2006


waldorf escribió:
> Hola. Usando objetos de Canvas en Tkinter .¿Pueden determinarse las
> coordenadas de la intersección de dos objetos conocidas sus tags? Por
> ejemplo el ovalo 'a' y el segmento 'c' se cortan: ¿puede determinarse el
> punto de corte sin necesidad de conocer sus ecuaciones?

Veo varios inconvenientes:

- si dibujas con color blanco, no se dibuja nada, luego visualmente no
habría ningún corte

- la precisión es tan burda que pueden coincidir puntos a pesar que,
matemáticamente, las gráficas no deberían cortarse (y lo mismo a la
inversa, que deberían cortarse y no lo hagan).


Si aún así necesitas determinar el punto de corte, hay que decidir si
quieres usar el sistema de coordenadas del canvas, con el que se dibuja,
o el de la ventana, más afín a eventos de ratón.


En cuanto a cómo lo haría yo, se me ocurre un sistema bastante cutre: lo
primero es obtener un rectángulo intersección de los dos rectángulos que
contienen cada una de las gráficas (método bbox). Si hay corte, tendrá
que estar dentro de este rectángulo intersección.

Entonces comprobaría este rectángulo, punto por punto, con el método
find_overlapping para ver si las dos gráficas tienen puntos comunes.

No tengo código para mostrar, pero espero que te sirvan de algo estas
indicaciones.



-- 
Chema Cortés (py en ch3m4.org)
"Proudly made on earth by generic humanoid carbon units"




Más información sobre la lista de distribución Python-es