Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from turtle import *
- import random
- def cube(cam, box):
- box[2] = box[2] / 20
- width = 300.0 #dimensions of the "screen"
- height = 300.0
- vertices = []
- vertices.append([0.0, 0.0, 0.0]) #every vertex.
- vertices.append([0.0, 0.0, 1.0 * box[2]])
- vertices.append([0.0, 1.0 * box[1], 0.0])
- vertices.append([0.0, 1.0 * box[1], 1.0 * box[2]])
- vertices.append([1.0 * box[0], 0.0, 0.0])
- vertices.append([1.0 * box[0], 0.0, 1.0 * box[2]])
- vertices.append([1.0 * box[0], 1.0 * box[1], 0.0])
- vertices.append([1.0 * box[0], 1.0 * box[1], 1.0 * box[2]])
- newverts = []
- for i in range(len(vertices)):
- vert = vertices[i]
- z = vert[2] + 1
- F = z - cam[2]
- """if (z == 0):
- z = 1 #uuuuuhh"""
- x = ((vert[0] - cam[0]) * (F / z)) + cam[0] + 1
- y = ((vert[1] - cam[1]) * (F / z)) + cam[1] + 1
- newverts.append([x, y])
- """for i in range(len(newverts)):
- #pu()
- goto(newverts[i])
- #pd()
- #dot(3)
- "=""rt(90)
- fd(20)
- rt(-90)
- fd(20)"=""
- print(i, newverts[i])"""
- pu()
- goto(newverts[0]) #manuel labor
- pd()
- #goto(newverts[])
- goto(newverts[4])
- goto(newverts[6])
- goto(newverts[2])
- goto(newverts[0])
- pu()
- goto(newverts[1])
- pd()
- goto(newverts[3])
- goto(newverts[7])
- goto(newverts[5])
- goto(newverts[1])
- goto(newverts[0])
- pu()
- goto(newverts[5])
- pd()
- goto(newverts[4])
- pu()
- goto(newverts[3])
- pd()
- goto(newverts[2])
- pu()
- goto(newverts[7])
- pd()
- goto(newverts[6])
- #main
- speed(0)
- camera = [-5, -5, 10] #x,y,z
- def keydown_d():
- key_d = true
- camera[0] = camera[0] + 1
- def keydown_a():
- key_a = true
- camera[0] = camera[0] - 1
- def keydown_w():
- key_w = true
- camera[2] = camera[2] + .5
- def keydown_s():
- key_s = true
- camera[2] = camera[2] - .5
- while (True):
- key_d = false
- key_a = false
- key_w = false
- key_s = false
- listen()
- onkey(keydown_d, "d")
- onkey(keydown_a, "a")
- onkey(keydown_w, "w")
- onkey(keydown_s, "s")
- boxinfo = [10.0, 10.0, 10.0] #width, height, depth; does not really make a cube
- cube(camera, boxinfo)
- clear()
- done()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement