# -*- coding: utf-8 -*-
import turtle
import Tkinter
import tkColorChooser
import tkSimpleDialog
pantalla = Tkinter.Tk()
pantalla.title("Mini paint")
pantalla.resizable(False ,False)
#Se crea la pantalla que contendra la tortuga y el menu
canvas1 = Tkinter.Canvas(pantalla, width=750, height=750)
canvas1.pack(side="left", fill="both", expand=True)
canvas2 = Tkinter.Canvas(pantalla, width=750, height=750)
canvas2.pack(side="right", fill="both", expand=True)
#Se cean los 2 canvas que estaran en la pantalla
lapiz=turtle.RawTurtle(canvas1)
#Secrea una rawturtle y se le dice que ponga su area de dibujo en el canvas 1
lapiz.ondrag(lapiz.goto,btn=1)
#Se le ordena a la tortuga que se dirija al lugar al que el usuario
#la arrastre (ondrag) con el boton 1 (click izquierdo)#La funcion ondrag al ejecutarse regresa 2 valores , la posicion de x y y en el momento
# en el que el usuario hace click sobre la tortuga , estas coordenadas son resividas por el goto
boton101= Tkinter.Button(canvas2,text="Color del lapiz",command=lambda:lapiz.pencolor(color2()))
boton101.pack(fill="x")
boton11= Tkinter.Button(canvas2,text="Grosor del lapiz",command=lambda:tamano())
boton11.pack(fill="x")
boton12= Tkinter.Button(canvas2,text="Color del relleno",command=lambda:lapiz.fillcolor(color2()))
boton12.pack(fill="x")
boton12= Tkinter.Button(canvas2,text="Cuadrado",command=lambda:cuadradi())
boton12.pack(fill="x")
boton12= Tkinter.Button(canvas2,text="Triangulo",command=lambda:triangulo())
boton12.pack(fill="x")
boton12= Tkinter.Button(canvas2,text="Circulo",command=lambda:circulo())
boton12.pack(fill="x")
boton12= Tkinter.Button(canvas2,text="Linea recta",command=lambda:linearecta())
boton12.pack(fill="x")
boton13= Tkinter.Button(canvas2,text="Limpiar",command=lambda:limpiar())
boton13.pack(fill="x")
boton14= Tkinter.Button(canvas2,text="subir y bajar lapiz",command=lambda:sube(lapiz.isdown()))
boton14.pack(fill="x")
boton14= Tkinter.Button(canvas2,text="Borrador",command=lambda:(lapiz.pencolor("White"),lapiz.pensize(10)))
boton14.pack(fill="x")
boton14= Tkinter.Button(canvas2,text="Lapiz",command=lambda:(lapiz.pencolor("black"),lapiz.pensize(1)))
boton14.pack(fill="x")
#Menu
def color2():
a=tkColorChooser.askcolor()
return (a[1])
#Funcion que asigna un color al lapiz o el relleno con ayuda de la libreria tkColorChooser ,
#la funcion tkColorChooser.askcolor() regresa el color seleccionado en forma de RGB y de hexadecimal
#de la forma (RGB, hexadecimal) #Al escribir a[1] estamos pidiendo la notacion hexadecimal del color
def tamano():
a=tkSimpleDialog.askinteger("Hola","Dame el grosor del lapiz")
lapiz.pensize(a)
#Funcion que pide el tamaño del lapiz por meedio de un tkSimpleDialog.askinteger y lo asigna al lapiz
def limpiar():
lapiz.clear()
#Funcion que limpia el area de dibujo
def sube(a):
if (a==False):
lapiz.pendown()
elif (a==True):
lapiz.penup()
#Funcion que se usa para subir y bajar el lapiz , para poder dibujar de forma mas realista
def cuadradi():
lapiz.begin_fill()
a=tkSimpleDialog.askinteger("Hola", "Dime el tamano del cuadrado")
for x in range(4):
lapiz.forward(a)
lapiz.right(90)
lapiz.end_fill()
def triangulo():
lapiz.begin_fill()
a=tkSimpleDialog.askinteger("Hola", "Dime el tamano del Triangulo")
for x in range(3):
lapiz.forward(a)
lapiz.left(120)
lapiz.end_fill()
def circulo():
lapiz.begin_fill()
a=tkSimpleDialog.askinteger("Hola", "Dime el tamano del circulo")
lapiz.circle(a)
lapiz.end_fill()
#Funciones que crean figuras predeterminadas
def linearecta():
lapiz.begin_fill()
a=tkSimpleDialog.askinteger("Hola", "Dime el tamano de la linea")
b=tkSimpleDialog.askinteger("Hola", "Dime el angulo de la linea")
c=tkSimpleDialog.askinteger("Hola", "Dime el numero de lineas")
for i in range(c):
lapiz.left(b)
lapiz.forward(a)
lapiz.end_fill()
#Funcion que le permite al usuario crear lineas rectas y
# seleccionar el angulo de las mismas , asi como el numero de veces que dicha
#linea sera dibujada ,para que asi se pueda#crear cualquier poligino regular
pantalla.mainloop()
No hay comentarios:
Publicar un comentario