jueves, 20 de septiembre de 2018

Seta de Mario Bros. en python

Programa ya corregido

Tomen en cuenta las coordenadas de x,y de la siguiente forma(cuarto cuadrante del plano cartesiano):


  • x:en la parte superior de una hoja cuadriculada
  • y:parte inferior izquierda de la misma hoja

Codigo fuente:


from tkinter import *

def dibujo(ventana2):
    panel= Canvas(width=200, height=200, bg="yellow")
    panel.pack()
    #Parte negra
    panel.create_polygon(70,10,130,10,130,20,150,20,150,30,160,30,160,50,170,50,170,60,180,60,180,130,
    170,130,170,140,160,140,160,160,150,160,150,170,50,170,50,160,40,160,40,140,30,140,30,130,20,130,
    20,60,30,60,30,50,40,50,40,30,50,30,50,20,70,20,70,10,width=1,fill="black",outline="black")

    #Primera parte blanca
    panel.create_polygon(80,20,120,20,120,30,140,30,140,40,150,40,150,60,160,60,160,70,170,70,
    170,120,150,120,150,110,50,110,50,120,30,120,30,70,40,70,40,60,50,60,50,40,60,40,60,30,80,30,80,20,width=1,fill="white",outline="white")

    #segunda parte blanca
    panel.create_polygon(60,120,140,120,140,130,150,130,150,150,140,150,140,160,60,160,60,150,
    50,150,50,130,60,130,60,120,width=1,fill="white",outline="white")

    #ojos
    panel.create_rectangle(80,120,90,140, width=1,fill="black",outline="black")
    panel.create_rectangle(110,120,120,140,width=1,fill="black",outline="black")

    #manchas
    panel.create_polygon(80,70,120,70,120,80,130,80,130,100,120,100,120,110,80,110,80,100,70,100,
    70,80,80,80,80,70,width=1,fill="red",outline="red")
    panel.create_polygon(110,20,120,20,120,30,140,30,140,50,120,50,120,40,110,40,110,20,width=1,fill="red",outline="red")
    panel.create_polygon(80,20,90,20,90,40,80,40,80,50,60,50,60,30,80,30,80,20,width=1,fill="red",outline="red")
    panel.create_polygon(40,60,60,60,60,90,50,90,50,100,30,100,30,70,40,70,40,60,width=1,fill="red",outline="red")
    panel.create_polygon(140,60,160,60,160,70,170,70,170,100,150,100,150,90,140,90,140,60,width=1,fill="red",outline="red")


ventana2 =Tk()
ventana2.title("Dibujo en ventana")
ventana2.config(bg="white")
ventana2.geometry("300x300")
boton = Button(ventana2, text="Presione para crecer c:", command=lambda: dibujo(ventana2) )
boton.pack()
ventana2.mainloop()





Como mencione al inicio, es mas sencillo apoyarse de una hoja cuadriculada para realizar el boceto de nuestra imagen antes de codificar las coordenadas para evitar errores como este.
Tambien anexo la hoja que utilice para practicar, de la cual se muestra el error de coordenadas:



No hay comentarios.:

Publicar un comentario