martes, 31 de octubre de 2017

cubito 3D con Pygame

http://codentronix.com/2011/05/12/rotating-3d-cube-using-python-and-pygame/

martes, 24 de octubre de 2017

Dibujar Con Turtle, Botones y Funciones. Clicks de Ratón

# -*- coding: utf-8 -*-
import turtle
from tkinter import *
from tkinter import simpledialog


v0 = Tk()
v0.title("Ventana madre")
v0.config(bg="black")
v0.geometry("500x400+80+150")
turtle.setup(600,500,600,90)
turtle.screensize(550,400)


global frente
frente=1
global angulo
angulo=0
global GrAcom
GrAcom=0
global linea
linea=1
global colorDelinea
colorDelinea="black"
#Dibujar a mano
b1 = "levantado"xAntigua, yAntigua = None, None
def click(event):
    global b1
    b1 = "abajo"
def soltarclick(event):
    global b1, xAntigua, yAntigua
    b1 = "arriba"    
    xAntigua = None
    yAntigua = None
def mover(event):
    if b1 == "abajo":
        global xAntigua, yAntigua
        if xAntigua != None and yAntigua != None:
            papel.create_line(xAntigua, yAntigua, event.x-300, event.y-250, width=linea,fill=colorDelinea, smooth=TRUE)
        xAntigua = event.x-300
        yAntigua = event.y-250
        print("x="+str(xAntigua+300)+" y="+str(yAntigua+250))



papel= turtle.getcanvas()
papel.bind("<Motion>", mover)
papel.bind("<ButtonPress>", click)
papel.bind("<ButtonRelease>", soltarclick)


b1 = Button(v0, text="Cambiar Fondo", command=lambda: fond())
b1.grid(row=1,column=1)
b2 = Button(v0,text="Pixeles", command=lambda: cantDelante())
b2.grid(row=2,column=2)
b3 = Button(v0, text="Avanzar", command=lambda: delante())
b3.grid(row=2,column=1)
b4 = Button(v0, text="Girar Derecha",command=lambda: giraDerecha())
b4.grid(row=3,column=1)
b5 = Button(v0, text="Grados", command=lambda:angDerecha())
b5.grid(row=3,column=4)
b6 = Button(v0, text="Girar Izq.",command=lambda: giraIzquierda())
b6.grid(row=3,column=2)
b7 = Button(v0, text="Color de relleno",command=lambda: rellenar())
b7.grid(row=4,column=1)
b8 = Button(v0, text="Iniciar Relleno",command=lambda: inicioRelleno())
b8.grid(row=4,column=3)
b9 = Button(v0, text="Terminar Relleno",command=lambda: finRelleno())
b9.grid(row=4,column=4)
b10 = Button(v0, text="Limpiar",command=lambda: limpiar())
b10.grid(row=5,column=1)
b11 = Button(v0, text="Reiniciar Puntero",command=lambda: Punto0())
b11.grid(row=6,column=1)
b12 = Button(v0, text="Tamaño de lineas",command=lambda: cursorTamaño())
b12.grid(row=7,column=1)
b13 = Button(v0, text="Color de lineas",command=lambda: colorLinea())
b13.grid(row=8,column=1)

label1= Label(v0,text="="+str(frente))
label1.grid(row=2,column=3)
label2= Label(v0,text="="+str(angulo))
label2.grid(row=3,column=5)
label3= Label(v0, text="Angulo actual=0",)
label3.grid(row=3,column=3)
label4= Label(v0, text="Color de relleno=...")
label4.grid(row=4,column=2)
label5= Label(v0, text="Tamaño de linea=  ...")
label5.grid(row=7,column=2)
label6= Label(v0, text="Color de linea=  ...")
label6.grid(row=8,column=2)


fonde = turtle.Screen()
turtle.colormode(255)

def delante():
    turtle.forward(frente)

def cantDelante():
    global frente
    frente = simpledialog.askinteger("Distancia a Avanzar", "Escribe los pixeles a recorrer:")
    label1.config(text="="+str(frente))

def fond():
    fondo = simpledialog.askstring("Color de fondo", "Escribe el color del fondo:")
    fonde.bgcolor(fondo)

def giraDerecha():
    turtle.right(angulo)
    global GrAcom
    GrAcom=GrAcom-angulo
    if GrAcom<0:
        GrAcom=GrAcom+360
    label3.config(text="Angulo actual="+str(GrAcom))

def angDerecha():
    global angulo
    angulo = simpledialog.askinteger("Angulo", "Escribe los grados a girar hacia la derecha:")
    label2.config(text="=" + str(angulo))

def giraIzquierda():
    turtle.left(angulo)
    global GrAcom
    GrAcom = GrAcom + angulo
    if GrAcom > 360:
        GrAcom = GrAcom - 360
    label3.config(text="Angulo actual=" + str(GrAcom))

def angIzquierda():
    global angulo
    angulo = simpledialog.askinteger("Angulo", "Escribe los grados a girar hacia la derecha:")
    label2.config(text="=" + str(angulo))

def rellenar():
    color=simpledialog.askstring("Relleno","Escribe color de relleno")
    turtle.fillcolor(color)
    label4.config(text="Color de relleno="+str(color))

def inicioRelleno():
turtle.begin_fill() def finRelleno(): turtle.end_fill() def limpiar(): turtle.clear() papel.delete("all") def Punto0(): turtle.penup() turtle.goto(0,0) turtle.pendown() def cursorTamaño(): global linea linea=simpledialog.askstring("Tamaño de contorno","Escribe el grosor de contorno") turtle.pensize(linea) label5.config(text="Tamaño de linea= "+str(linea)) def colorLinea(): global colorDelinea colorDelinea=simpledialog.askstring("Color de Lineas: ","Escribe el color de las lineas:") turtle.pencolor(colorDelinea) label6.config(text="Tamaño de linea= " + str(colorDelinea)) v0.mainloop()


lunes, 16 de octubre de 2017

Turtle Ejemplos y Barquito

from turtle import *

setup(640, 480, 0, 0) #crear ventana turtledone()




from turtle import *

setup(450, 200, 0, 0)
screensize(300, 150)

goto(100, 50)
done()


from turtle import *

setup(450, 200, 0, 0)
screensize(300, 150)

goto(100, 50)
goto(100, -50)
goto(50, -50)
done()



from turtle import *

setup(450, 200, 0, 0)
screensize(300, 150)

goto(100, 50)
sety(-50)
setx(50)
setx(0)
sety(50)
setx(100)
goto(50,-50)
goto(0,0)
goto(50,50)
goto(100,0)
goto(50,-50)
hideturtle()
done()

from turtle import *

setup(450, 200, 0, 0)
screensize(300, 150)

goto(100, 50)
penup()
goto(100, -50)
pendown()
goto(50, -50)
done()



from turtle import *

setup(450, 200, 0, 0)
screensize(300, 150)

goto(100, 50)
pensize(4)
goto(100, -50)
pensize(8)
goto(50, -50)
done()

from turtle import *

setup(450, 200, 0, 0)
screensize(300, 150)
colormode(255)

pencolor(255, 0, 0)
goto(100, 50)
pencolor(0, 255, 0)
goto(100, -50)
pencolor(0, 0, 255)
goto(50, -50)
done()


from turtle import *

setup(600, 600, 0, 0)
screensize(1300, 1300)
penup()
goto(50,300)
pendown()
fillcolor("brown")
begin_fill()
goto(150,200)
goto(400,200)
goto(500,300)
end_fill()
fillcolor("pink")
goto(300,300)
begin_fill()
goto(300,500)
goto(450,350)
goto(300,350)
end_fill()
fillcolor("pink")
goto(300,500)
goto(275,500)
goto(275,600)
goto(225,550)
goto(275,550)
goto(275,500)
goto(250,500)
begin_fill()
goto(100,350)
goto(250,350)
end_fill()
goto(250,500)
goto(250,300)
goto(50,300)
penup()
goto(300,300)
fillcolor("#663300")
begin_fill()
goto(300,500)
goto(250,500)
goto(250,300)
end_fill()
done()






lunes, 9 de octubre de 2017

Huevo Estrellado/Flor Sencilla Con Funciones y Turtle

from turtle import *
def Circulo(n):
 for i in range(n):
    right(1)
    forward(1)
def flor():
    for i in range(4):
        Circulo(180)
        left(90)
        forward(50)



color('red','pink')
Circulo(360)
penup()
left(90)
forward(50)
pendown()
right(45)
flor()
done()