lunes, 2 de octubre de 2017

Práctica de polígonos

#-*- coding: utf-8 -*-
from Tkinter import  *

ventanaPrincipal = Tk()  # Tk() Es la ventana principal
ventanaPrincipal.title("Ventana principal") # Título de la ventana
ventanaPrincipal.config(bg="orange")  # Le da color al fondo
ventanaPrincipal.geometry("860x400")  # Cambia el tamaño de la ventana

def ventanaH():
    ventanaHija = Toplevel(ventanaPrincipal)
    ventanaHija.title("Ventana hija")
    ventanaHija.protocol("WM_DELETE_WINDOW", "onexit")
    return ventanaHija


def ejecutar(f):
    ventanaPrincipal.after(200, f)  # Una forma de ejecutar las funciones


def circulo():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=210, height=210,bg='red')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_oval(10, 10, 200, 200, width=3, fill='blue')  # Coordenadas y características de la figura

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def rectangulo():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=210, height=210,bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_rectangle(10, 10, 200, 200, width=5, fill='yellow')  # Coordenadas y características de la figura

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def lineas():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=210, height=210,bg='gray')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_line(0, 200, 200, 0, width=10, fill='purple')  # Coordenadas y características de la figura

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def quesito():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=300, height=200, bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_arc(10, 10, 190, 190, width=3, start=270, extent=90, fill='pink')  # Coordenadas y características de la figura

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def arco():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width =300, height=200, bg='gray')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_arc(10, 10, 190, 190, width=3, start=0, extent=270, fill='yellow')  # Coordenadas y características de la figura

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def pastel():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=300, height=300, bg='gray')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_arc(10, 10, 190, 190, width=3, start=0, extent=270, fill='orange')  # Coordenadas y características de la figura
    figura.create_arc(20, 20, 200, 200, width=3, start=270, extent=90, fill='brown')

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def texto():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=400, height=300, bg='yellow')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_text(160,100,fill="purple",font="Times 30 italic bold",text="Texto\n hecho en python.")

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


def poligono():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=400, height=300,bg='gray')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    figura.create_polygon(40, 40, 40, 140, 140, 140, 140, 100,fill="orange", outline="brown", width=6)

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()

def letras():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=400, height=300, bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    puntosFigura1 = [40, 40, 40, 200, 60, 200, 60, 80, 100, 160, 140, 80, 140, 200, 160, 200, 160, 40, 140, 40, 100, 120, 60, 40]
    figura.create_polygon(puntosFigura1, fill="#006600", outline="black", width=6)

    puntosFigura2=[40, 40, 60, 40, 80, 100, 100, 40, 120, 40, 90, 120, 120, 200, 100, 200, 80, 140, 60, 200, 40, 200, 70, 120]
    for i  in range(0,len(puntosFigura2)):
        if(i%2==0):
            puntosFigura2[i] +=140
    figura.create_polygon(puntosFigura2, fill="red", outline="black", width=6)

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()

def conejo():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=600, height=300,
                  bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    puntosFigura1 = [382.6, 54.5,
                     339.07, 56.3,
                     311.48, 99.02,
                     284.55, 99.02,
                     284.78, 141.74,
                     334.62, 141.74,
                     336.4, 180.91,
                     313.26, 212.95,
                     339.96, 240.54,
                     338.18, 212.06,
                     375.56, 254.78,
                     355, 286,
                     384.46, 302.84,
                     454.78, 303.73,
                     456.56, 210.28,
                     347.97, 113.26,
                     340.85, 97.24]
    for i in range(0, len(puntosFigura1)):
        puntosFigura1[i] -= 40
    figura.create_polygon(puntosFigura1, fill="pink", outline="black", width=4)

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()

def estrella():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=300, height=300,
                  bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    puntosFigura1 = [130,20,
                     150,90,
                     210,90,
                     160,130,
                     180,200,
                     130,160,
                     80,200,
                     100,130,
                     50,90,
                     110,90]
    for i in range(0, len(puntosFigura1)):
        puntosFigura1[i] += 30
    figura.create_polygon(puntosFigura1, fill="yellow", outline="black", width=4)

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()

def perrito():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=300, height=300,
                  bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura
    puntosFigura1 = [37.29,21.55,
                     53.89,47.62,
                     31,80,
                     46.38,98.19,
                     76.8,83.97,
                     78.38,131.78,
                     97.34,132.17,
                     98.92,98.19,
                     135.67,97.4,
                     136.85,134.15,
                     155.03,133.75,
                     153.84,80.81,
                     175.57,24.32,
                     137.25,58.69,
                     78.78,61.45,
                     66.53,42.88]
    for i in range(0, len(puntosFigura1)):
        puntosFigura1[i] += 30
    figura.create_polygon(puntosFigura1, fill="brown", outline="black", width=4)

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()

def animal1():
    ventana = ventanaH()
    ventana.deiconify()
    figura = Canvas(ventana)
    figura.config(width=400, height=600, bg='white')  # Lienzo con las medidas y color sobre el que se dibujará la figura
    figura.pack(expand=YES, fill=BOTH)  # Sirve para cargar la figura

    figura.create_polygon(52.5,14.5,37,59.1,51,59.1, fill="#5C554E", outline="#5C554E", width=1)
    figura.create_polygon(19.3, 56.8,58,59.1,67,91,37.5,83, fill="#C3BAB5", outline="#C3BAB5", width=1)
    figura.create_polygon(58, 57.8, 78, 77, 71, 103, fill="#D4CCC1", outline="#D4CCC1", width=1)
    figura.create_polygon(37.5, 83,67.4,91,71,103, fill="#998C8A", outline="#998C8A", width=1)
    figura.create_polygon(71, 103, 71,104.8, 59.1,104.8,53.2,91,fill="#665B57", outline="#665B57", width=1)

    figura.create_polygon(86,105.6,98.2,148.6,47,133.6,24.2,103.6, fill="#C3BAB5", outline="#C3BAB5", width=1)
    figura.create_polygon(98.2, 148.6,102,165.2, 47,133.6, fill="#9B8D8A", outline="#9B8D8A", width=1)
    figura.create_polygon(86,105.6,124,169, 120,196,110.8,196, fill="#D5CDC2", outline="#D5CDC2", width=1)
    figura.create_polygon(102,165.2,110.8,196,99,196,80.6,153, fill="#605550", outline="#605550", width=1)

    figura.create_polygon(139.5, 197, 147, 241, 71, 220.4, 46, 193, fill="#C3BAB5", outline="#C3BAB5", width=1)
    figura.create_polygon(147, 241, 150, 261.4, 71, 220.4, fill="#968B87", outline="#968B87", width=1)
    figura.create_polygon(139.5, 197, 193, 274.2, 189, 307.8, 176, 321, 161.6, 321, fill="#D4CCC1", outline="#D4CCC1",width=1)
    figura.create_polygon(150, 261.4, 161.6, 321, 126.8, 249, fill="#605551", outline="#605551", width=1)

    figura.create_polygon(199.4,307.8,189,307.8, 176,321,186.6,461,184,448.8,171,479.5,199.4,503,fill="#C2AD9C", outline="#C2AD9C", width=1)
    figura.create_polygon(176, 321, 161.6, 321,186.6,461,fill="#615652", outline="#615652", width=1)
    figura.create_polygon(161.6, 321, 136, 359.4,177.2,409,fill="#D9C6B7", outline="#D9C6B7", width=1)
    figura.create_polygon(144.4,369.8, 139.6,384.6,160,389.4,fill="#443232", outline="#443232", width=1)
    figura.create_polygon(139.6, 384.6, 160, 389.4,177.2,409,169.2,450, fill="#826E65", outline="#826E65", width=1)
    figura.create_polygon(171,479.5,180.6,497.8,191.2,496.8, fill="#463334", outline="#463334", width=1)
    figura.create_polygon(177.2, 409,164.8,475,176.5,511,199.4,522,199.4,502.8,191.2,496.8,180.6,497.8,171,479.5,184,448.8, fill="#9B7F79", outline="#9B7F79", width=1)

    figura.create_polygon(151.8,335.4,109.6,280,142.2,349.2, fill="#5F5150", outline="#5F5150", width=1)
    figura.create_polygon(109.6, 280, 70.3,266,94.3,329,131.3,326, fill="#483636", outline="#483636", width=1)
    figura.create_polygon(94.3, 329,137,336,132,326.8, fill="#C2AF9D", outline="#C2AF9D", width=1)
    figura.create_polygon(115, 333, 136, 359.4, 142.2,349.2,137,336, fill="#826E65", outline="#826E65", width=1)

    #Lado inverso
    figura.create_polygon(346.5, 14.5,347.5,59.1,361,59.1, fill="#2E2621", outline="#2E2621", width=1)
    figura.create_polygon(379.4, 56.8, 341.8, 59.1, 332, 91, 361, 83, fill="#908782", outline="#908782", width=1)
    figura.create_polygon(341.5, 57.8, 324, 75, 327.6, 103, fill="#A29B8F", outline="#A29B8F", width=1)
    figura.create_polygon(361, 83, 332.4, 91, 329, 103, fill="#685D59", outline="#685D59", width=1)
    figura.create_polygon(329, 103, 326.8, 104.8, 340, 104.8, 345.6, 91, fill="#2D2220", outline="#2D2220", width=1)

    figura.create_polygon(313, 105.6, 301, 148.6, 352, 133.6, 374.5, 103.6, fill="#908782", outline="#908782", width=1)
    figura.create_polygon(301, 148.6, 297, 165.2, 352, 133.6, fill="#625755", outline="#625755", width=1)
    figura.create_polygon(313, 105.6, 274, 169,279, 196, 288, 196, fill="#A1998E", outline="#A1998E", width=1)
    figura.create_polygon(297, 165.2, 288, 196,300,196, 318, 153, fill="#2D221E", outline="#2D221E", width=1)

    figura.create_polygon(260,197,252,241,331,220.4,352.4,193, fill="#908782", outline="#908782", width=1)
    figura.create_polygon(252, 241, 249, 261.4, 331,220.4, fill="#645955", outline="#645955", width=1)
    figura.create_polygon(260, 197, 205,274.2, 209.8,307.8,223,321,238,321, fill="#A1998E", outline="#A1998E", width=1)
    figura.create_polygon(249, 261.4,238.6,321,271.8,249, fill="#2D221E", outline="#2D221E", width=1)

    figura.create_polygon(199.4, 307.8, 209.8,307.8, 223,321, 212.6, 461, 215, 448.8, 228, 479.5, 199.4, 503,fill="#8E7968", outline="#8E7968", width=1)
    figura.create_polygon(223, 321, 238.6,321, 212.6, 461, fill="#302722", outline="#302722", width=1)
    figura.create_polygon(238, 321, 262.8, 359.4, 222.5, 409, fill="#A69384", outline="#A69384", width=1)
    figura.create_polygon(254.4, 369.8, 259.6, 384.6, 238, 389.4, fill="#120001", outline="#120001", width=1)
    figura.create_polygon(259.6, 384.6, 238, 389.4, 222.5, 409, 229.5, 450, fill="#4F3B32", outline="#4F3B32", width=1)
    figura.create_polygon(228, 479.5, 218.3, 497.8, 207.5, 496.8, fill="#180A04", outline="#180A04", width=1)
    figura.create_polygon(222.5, 409, 234, 475, 223, 511, 199.4, 522, 199.4, 502.8, 207.5, 496.8, 218.3, 497.8, 228,
                          479.5, 215, 448.8, fill="#674C45", outline="#674C45", width=1)

    figura.create_polygon(247, 335.4, 290.6, 280, 256.8, 349.2, fill="#281F1D", outline="#281F1D", width=1)
    figura.create_polygon(290.6, 280, 328, 266, 304.8, 329, 267.5, 326, fill="#140202", outline="#140202", width=1)
    figura.create_polygon(304.8, 329, 262.5, 336, 267.5, 326.8, fill="#8D7B66", outline="#8D7B66", width=1)
    figura.create_polygon(283, 333, 262.8, 359.4, 256.8, 349.2, 262.5, 336, fill="#4D3930", outline="#4D3930", width=1)

    botonVentanaHija = Button(ventana, text="Cerrar", command=lambda: ejecutar(ventana.destroy()))
    botonVentanaHija.pack()


botonCirculo = Button(ventanaPrincipal, text="Mostrar circulo", command=lambda: ejecutar (circulo()))  # Primer boton
botonCirculo.grid (row=1, column=1)  # El botón es cargado

botonRectangulo = Button(ventanaPrincipal, text="Mostrar rectangulo", command=lambda: ejecutar (rectangulo()))  # Primer boton
botonRectangulo.grid (row=1, column=2)  # El botón es cargado

botonLineas = Button(ventanaPrincipal, text="Mostrar linea", command=lambda: ejecutar (lineas()))  # Primer boton
botonLineas.grid (row=1, column=3)  # El botón es cargado

botonQuesito = Button(ventanaPrincipal, text="Mostrar quesito", command=lambda: ejecutar (quesito()))  # Primer boton
botonQuesito.grid (row=1, column=4)  # El botón es cargado

botonArco = Button(ventanaPrincipal, text="Mostrar arco", command=lambda: ejecutar (arco()))  # Primer boton
botonArco.grid (row=1, column=5)  # El botón es cargado

botonPastel = Button(ventanaPrincipal, text="Mostrar pastel", command=lambda: ejecutar (pastel()))  # Primer boton
botonPastel.grid (row=1, column=6)  # El botón es cargado

botonTexto = Button(ventanaPrincipal, text="Mostrar texto", command=lambda: ejecutar (texto()))  # Primer boton
botonTexto.grid (row=1, column=7)  # El botón es cargado

botonPoligono = Button(ventanaPrincipal, text="Mostrar poligono", command=lambda: ejecutar (poligono()))  # Primer boton
botonPoligono.grid (row=2, column=1)  # El botón es cargado

botonPoligono = Button(ventanaPrincipal, text="Mostrar letras", command=lambda: ejecutar (letras()))  # Primer boton
botonPoligono.grid (row=2, column=2)  # El botón es cargado

botonPoligono2 = Button(ventanaPrincipal, text="Conejo", command=lambda: ejecutar (conejo()))  # Primer boton
botonPoligono2.grid (row=2, column=3)  # El botón es cargado

botonPoligono3 = Button(ventanaPrincipal, text="Estrella", command=lambda: ejecutar (estrella()))  # Primer boton
botonPoligono3.grid (row=2, column=4)  # El botón es cargado

botonPoligono4 = Button(ventanaPrincipal, text="Perrito", command=lambda: ejecutar (perrito()))  # Primer boton
botonPoligono4.grid (row=2, column=5)  # El botón es cargado

botonPoligono4 = Button(ventanaPrincipal, text="Antílope", command=lambda: ejecutar (animal1()))  # Primer boton
botonPoligono4.grid (row=2, column=6)  # El botón es cargado

ventanaPrincipal.mainloop()

No hay comentarios:

Publicar un comentario