def model_with_triangle(): render = Render(2000, 2000) render.light = render.vector(0, 0, 1) render.load_model_3D('./models/Biplane/OBJ/HiPoly/Biplane.obj', scale=render.vector(200, 200, 200), rotate=render.vector(0, 0, 0)) render.glFinish()
def model(): """ Draws a cube at an angle so it is more interesting """ r = Render(800, 600) t = Texture('./models/model.bmp') r.active_texture = t r.load('./models/model.obj', (1, 1, 1), (300, 300, 300)) r.draw_arrays('TRIANGLES') r.display('out.bmp')
def face(): """ Draws a cute face, but in wireframe it just looks creepy """ r = Render(800, 600) r.load('./models/face.obj', (25, 5), (15, 15)) r.display() r.display('out.bmp')
def poligonos(): poligono1 = [(165, 380), (185, 360), (180, 330), (207, 345), (233, 330), (230, 360), (250, 380), (220, 385), (205, 410), (193, 383)] poligono2 = [(321, 335), (288, 286), (339, 251), (374, 302)] poligono3 = [(377, 249), (411, 197), (436, 249)] poligono4 = [(413, 177), (448, 159), (502, 88), (553, 53), (535, 36), (676, 37), (660, 52), (750, 145), (761, 179), (672, 192), (659, 214), (615, 214), (632, 230), (580, 230), (597, 215), (552, 214), (517, 144), (466, 180)] poligono5 = [(682, 175), (708, 120), (735, 148), (739, 170)] render = Render(800, 800) render.polygone(poligono1) render.polygone(poligono2) render.polygone(poligono3) render.polygone(poligono4) render.polygone(poligono5) render.glFinish()
def stars(): """ Randomly draws stars """ width = 800 height = 600 r = Render(width, height) def star(x, y, size): """ Draws a star. Size 1: small Size 2: medium Size 3: big """ c = random.randint(0, 255) r.set_color(color(c, c, c)) # 3 identical colors will always be gray if size == 1: r.point(x, y) elif size == 2: # 4 points r.point(x, y) r.point(x + 1, y) r.point(x, y + 1) r.point(x + 1, y + 1) elif size == 3: # 9 points r.point(x, y) r.point(x + 1, y) r.point(x, y + 1) r.point(x - 1, y) r.point(x, y - 1) # remove the corners # r.point(x+1, y+1) # r.point(x-1, y-1) # r.point(x-1, y+1) # r.point(x+1, y-1) # leaves a 2 pixel padding to avoid OOB for x in range(width - 4): for y in range(height - 4): if random.random( ) < 0.001: # 0.1% only 0.1 chance of actually rendering a star star(x + 2, y + 2, random.randint(1, 3)) r.write('out.bmp')
def triangle(): """ Draws triangles """ r = Render(200, 200) r.triangle( V2(10, 70), V2(50, 160), V2(70, 80), color(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) r.triangle( V2(180, 50), V2(150, 1), V2(70, 180), color(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) r.triangle( V2(180, 150), V2(120, 160), V2(130, 180), color(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) r.display('out.bmp')
def single_line(): """ Draws a single line in the screen (lower left corner) """ r = Render(800, 600) r.line((10, 10), (510, 10)) r.display('out.bmp')
def cube(): """ Draws a cube at an angle so it is more interesting """ r = Render(800, 600) r.load('./models/cube2.obj', (4, 3, 3), (100, 100, 100)) r.display('out.bmp')
def face(): """ Draws a cute face, now 30% less creepy! """ r = Render(800, 600) r.load('./models/face.obj', (25, 5, 0), (15, 15, 15)) r.display('out.bmp')
def single_point(): """ Draws a single point in the screen (upper left corner) """ r = Render(800, 600) r.point(10, 590) r.display('out.bmp')
def natsuki(): """ Draws natsuki from ddlc, because we can now """ r = Render(800, 600) r.load('./models/natsuki.obj', (0.5, 0, 0), (500, 500, 300)) r.display('out.bmp')
def figures(): """ Draws some simple shapes, to test z indexing """ r = Render(800, 600) r.load('./models/cubespherecone.obj', (0, 1, 1), (100, 100, 100)) r.display('out.bmp')
def model(): """ Draws a face, now 30% less cute """ r = Render(800, 600) r.load('./models/model.obj', (3, 3, 0), (200, 200, 15)) r.display('out.bmp')
def figures(): """ Draws a cute face, now 30% less creepy! """ r = Render(800, 600) r.load('./models/figures.obj', (3, 1, 1), (100, 100, 100)) r.display('out.bmp')
def model(): """ Draws a cube at an angle so it is more interesting """ r = Render(800, 600) t = Texture('./models/model.bmp') r.load('./models/model.obj', (1, 1, 1), (300, 300, 300), texture=t) r.display('out.bmp')
def earth(): """ Draws planet earth, racism free """ r = Render(800, 600) t = Texture('./models/earth.bmp') r.load('./models/earth.obj', (800, 600, 0), (0.5, 0.5, 1), texture=t) r.display('out.bmp')
def simple_cube(): """ Draws a cube, but an orthogonal cube, so a square """ r = Render(800, 600) r.load('./models/cube.obj', (4, 3), (100, 100)) # r.display() r.display('out.bmp')
def bears(): """ Draws some bears on top of each other """ r = Render(800, 600) r.load('./models/bears.obj', (9, 2), (40, 40)) # r.display() r.display('out.bmp')
def star(width, height): r = Render.glInit(width, height) r.glClear() r.glColor(1, 1, 1) # Lines r.glLine(0, 0, 1, 0) r.glLine(0, 0, 0, 1) r.glLine(0, 0, -1, 0) r.glLine(0, 0, 0, -1) r.glLine(0, 0, 1, 1) r.glLine(0, 0, 1, -1) r.glLine(0, 0, -1, 1) r.glLine(0, 0, -1, -1) r.glLine(0, 0, 0.5, 1) r.glLine(0, 0, 1, 0.5) r.glLine(0, 0, 1, -0.5) r.glLine(0, 0, 0.5, -1) r.glLine(0, 0, -0.5, 1) r.glLine(0, 0, -1, 0.5) r.glLine(0, 0, -1, -0.5) r.glLine(0, 0, -0.5, -1) r.glLine(0, 0, 0.25, 1) r.glLine(0, 0, 0.75, 1) r.glLine(0, 0, 1, 0.75) r.glLine(0, 0, 1, 0.25) r.glLine(0, 0, 0.25, -1) r.glLine(0, 0, 0.75, -1) r.glLine(0, 0, 1, -0.75) r.glLine(0, 0, 1, -0.25) r.glLine(0, 0, -0.25, -1) r.glLine(0, 0, -0.75, -1) r.glLine(0, 0, -1, -0.75) r.glLine(0, 0, -1, -0.25) r.glLine(0, 0, -0.25, 1) r.glLine(0, 0, -0.75, 1) r.glLine(0, 0, -1, 0.75) r.glLine(0, 0, -1, 0.25) r.glFinish()
def static(): """ Draws static noise in B/W """ width = 800 height = 600 r = Render(width, height) # very inefficient for x in range(width): for y in range(height): if random.random() > 0.5: # 50/50 chance r.point(x, y) r.display('out.bmp')
def diagonal(): """ Draws a perfectly diagonal line """ width = 800 height = 600 r = Render(width, height) # very inefficient for x in range(width): for y in range(height): if x == y: r.point(x, y) r.display('out.bmp')
def color_static(): """ Draws static noise in color """ width = 800 height = 600 r = Render(width, height) # very inefficient for x in range(width): for y in range(height): r.point( x, y, color(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) r.write('out.bmp')
# Laboratorio 1 Tests.py #Import our gl library import math from gl import Render, colorScale #We draw our MainGL mainGl = Render(1000, 500) #We define our polygons polygon1 = [(165, 380), (185, 360), (180, 330), (207, 345), (233, 330), (230, 360), (250, 380), (220, 385), (205, 410), (193, 383)] polygon2 = [(321, 335), (288, 286), (339, 251), (374, 302)] polygon3 = [(377, 249), (411, 197), (436, 249)] polygon4 = [(413, 177), (448, 159), (502, 88), (553, 53), (535, 36), (676, 37), (660, 52), (750, 145), (761, 179), (672, 192), (659, 214), (615, 214), (632, 230), (580, 230), (597, 215), (552, 214), (517, 144), (466, 180)] polygon5 = [(682, 175), (708, 120), (735, 148), (739, 170)] polygon6 = [(100, 100), (100, 400), (800, 400), (800, 100)] mainGl.glColorRGB(1, 0, 0) mainGl.glDrawAndPaintPolygon(polygon1) mainGl.glColorRGB(0, 1, 0) mainGl.glDrawAndPaintPolygon(polygon2) mainGl.glColorRGB(0, 0, 1) mainGl.glDrawAndPaintPolygon(polygon3) mainGl.glColorRGB(1, 1, 0) mainGl.glDrawAndPaintPolygon(polygon4) mainGl.glColorRGB(1, 0, 1)
""" Paula Camila Gonzalez Ortega 18398 """ from gl import Render width = 1000 height = 1000 bitmap = Render(width, height) bitmap.glClearColor(0, 0, 0) #este es background color bitmap.glclear() bitmap.glColor(1, 0.5, 0) #estos colores son los que se usaran para pintar #POLY 1 poly = [(165, 380), (185, 360), (185, 360), (180, 330), (180, 330), (207, 345), (207, 345), (233, 330), (233, 330), (230, 360), (230, 360), (250, 380), (250, 380), (220, 385), (220, 385), (205, 410), (205, 410), (193, 383), (193, 383), (165, 380)] bitmap.drawPolygon(poly) bitmap.filling(poly) #POLY 2 bitmap.glColor(0.5, 0, 1)
def square(): """ Draws a square (to test correct dimensions) """ width = 800 height = 600 r = Render(width, height) padding = 10 square_w = width - padding square_h = height - padding # horizontal lines for x in range(width): if (x > padding and x < square_w): r.point(x, square_h) r.point(x, padding) # vertical lines for y in range(height): if (y > padding and y < square_h): r.point(square_w, y) r.point(padding, y) r.display('out.bmp')
def isometric_cube(): """ Draws a isometric cube """ r = Render(600, 600) r.line((200, 200), (287, 250)) r.line((200, 200), (113, 250)) r.line((200, 200), (200, 300)) r.line((287, 250), (287, 350)) r.line((113, 250), (113, 350)) r.line((200, 300), (287, 350)) r.line((200, 300), (113, 350)) r.line((287, 350), (200, 400)) r.line((113, 350), (200, 400)) r.display('out.bmp')
def cube(): """ Draws a cube """ r = Render(400, 400) r.line((100, 100), (200, 100)) r.line((100, 100), (100, 200)) r.line((200, 100), (200, 200)) r.line((100, 200), (200, 200)) r.line((150, 150), (250, 150)) r.line((150, 150), (150, 250)) r.line((250, 150), (250, 250)) r.line((150, 250), (250, 250)) r.line((100, 100), (150, 150)) r.line((100, 200), (150, 250)) r.line((200, 100), (250, 150)) r.line((200, 200), (250, 250)) r.display('out.bmp')
def multi_line(): """ Draws lines from every corner """ r = Render(800, 600) r.line((10, 10), (510, 10)) r.line((10, 10), (462, 191)) r.line((10, 10), (354, 354)) r.line((10, 10), (191, 462)) r.line((10, 10), (10, 510)) r.line((790, 590), (790, 90)) r.line((790, 590), (609, 138)) r.line((790, 590), (446, 246)) r.line((790, 590), (338, 409)) r.line((790, 590), (290, 590)) r.line((10, 590), (510, 590)) r.line((10, 590), (462, 409)) r.line((10, 590), (354, 246)) r.line((10, 590), (191, 138)) r.line((10, 590), (10, 90)) r.line((790, 10), (790, 510)) r.line((790, 10), (609, 462)) r.line((790, 10), (446, 354)) r.line((790, 10), (338, 191)) r.line((790, 10), (290, 10)) r.display('out.bmp')
# Laboratorio 3 Tests.py #Import our gl library import math from gl import Render, colorScale from obj import Obj #We draw our Raptor mainGl = Render(1400, 1400) mainGl.loadObjModel('raptor.obj', 700, 500) mainGl.glFinish('graphic.bmp') #We draw our Dinosaur mainGl2 = Render(1400, 1400) mainGl2.loadObjModel('dinosaur.obj', 700, 700, 5, 5) mainGl2.glFinish('graphic2.bmp') #We draw our Trex mainGl3 = Render(1400, 1400) mainGl3.loadObjModel('trex.obj', 700, 500, 3, 3) mainGl3.glFinish('graphic3.bmp') #We draw our Laptop mainGl4 = Render(1400, 1400) mainGl4.loadObjModel('laptop.obj', 700, 500, 25, 25) mainGl4.glFinish('graphic4.bmp') #We draw our Roulette mainGl5 = Render(5000, 5000) mainGl5.loadObjModel('roulette.obj', 2500, 500, 1, 1) mainGl5.glFinish('graphic5.bmp')
from gl import Render, color r = Render() r.glInit() r.glClearColor(1, 0, 0) r.glCreateWindow(800, 600) def line(x1, y1, x2, y2): dy = (y2 - y1) dx = abs(x2 - x1) steep = dy > dx if steep: x1, y1 = y1, x1 x2, y2 = y2, x2 if x1 > x2: x1, x2 = x2, x1 y1, y2 = y2, y1 dy = abs(y2 - y1) dx = abs(x2 - x1) offset = 0 threshold = 1 * dx y = y1 for x in range(x1, x2): if steep: r.point(y, x)