Пример #1
0
import wireframe as wf
import wireframeDisplay as wd
import pygame

width, height = 600, 400
viewer = wd.WireframeViewer(width, height)

viewer.addWireframe('floor',   wf.getHorizontalGrid((0,400,0), (40,40), (10,10)))
viewer.addWireframe('ceiling', wf.getHorizontalGrid((0,250,0), (40,40), (10,10)))
viewer.addWireframe('back wall',  wf.getCuboid((-10,250,400), (420,150, 10)))
viewer.addWireframe('left wall',  wf.getCuboid((-10,250,  0), ( 10,150,400)))
viewer.addWireframe('right wall', wf.getCuboid((400,250,  0), ( 10,150,400)))
viewer.addWireframe('back block', wf.getCuboid((125,250,200), (150,150,200)))

# Move so that eye at (200,150,40) is at (0,400,0)
viewer.translate([200,-150,-50])

# Change depending on screen size
field_of_view = 0.25
viewer.scale(1/field_of_view)

# Override keyboard controls
wd.key_to_function[pygame.K_UP]    = (lambda x: x.translate([0, 0, -40]))
wd.key_to_function[pygame.K_DOWN]  = (lambda x: x.translate([0, 0,  40]))
wd.key_to_function[pygame.K_LEFT]  = (lambda x: x.rotateY(-wd.rotation_amount, (width/2,0)))
wd.key_to_function[pygame.K_RIGHT] = (lambda x: x.rotateY( wd.rotation_amount, (width/2,0)))
wd.key_to_function[pygame.K_q] = (lambda x: x.rotateX(-wd.rotation_amount, (height/2+50,0)))
wd.key_to_function[pygame.K_w] = (lambda x: x.rotateX( wd.rotation_amount, (height/2+50,0)))

viewer.run()
Пример #2
0
import wireframe as wf
import wireframeDisplay as wd

class AnimatedWireframe(wf.Wireframe):
    def update(self):
        self.translate([0,1,0])

ball = wf.getSpheroid((200,200,300), (30,30,30), 16)
animated_ball = AnimatedWireframe()
animated_ball.nodes = ball.nodes
animated_ball.edges = ball.edges

width, height = 600, 400
viewer = wd.WireframeViewer(width, height)
viewer.addWireframe('floor', wf.getHorizontalGrid((0,height,0), (50,50), (12,12)))
viewer.addWireframe('ball', animated_ball)

# Eye starts at (width/2, height/2, 0). Move to (width/2, height-50, 0)
viewer.translate([0,-150,0])

# Change depending on screen size and now much the eye can fit in view
field_of_view = 0.25
viewer.scale(1/field_of_view)

#viewer.perspective = False

viewer.run()
Пример #3
0
import wireframe as wf
import wireframeDisplay as wd

class AnimatedWireframe(wf.Wireframe):
    def update(self):
        self.translate([0,1,0])

ball = wf.getSpheroid((200,200,300), (30,30,30), 16)
animated_ball = AnimatedWireframe()
animated_ball.nodes = ball.nodes
animated_ball.edges = ball.edges

width, height = 600, 400
viewer = wd.WireframeViewer(width, height)
viewer.addWireframe('floor', wf.getHorizontalGrid((0,height,0), (50,50), (12,12)))
viewer.addWireframe('ball', animated_ball)

# Eye starts at (width/2, height/2, 0). Move to (width/2, height-50, 0)
viewer.translate([0,-150,0])

# Change depending on screen size and now much the eye can fit in view
field_of_view = 0.25
viewer.scale(1/field_of_view)

#viewer.perspective = False

viewer.run()
Пример #4
0
import wireframe as wf
import wireframeDisplay as wd
import pygame

width, height = 600, 400
viewer = wd.WireframeViewer(width, height)

viewer.addWireframe('floor',
                    wf.getHorizontalGrid((0, 400, 0), (40, 40), (10, 10)))
viewer.addWireframe('ceiling',
                    wf.getHorizontalGrid((0, 250, 0), (40, 40), (10, 10)))
viewer.addWireframe('back wall', wf.getCuboid((-10, 250, 400), (420, 150, 10)))
viewer.addWireframe('left wall', wf.getCuboid((-10, 250, 0), (10, 150, 400)))
viewer.addWireframe('right wall', wf.getCuboid((400, 250, 0), (10, 150, 400)))
viewer.addWireframe('back block', wf.getCuboid((125, 250, 200),
                                               (150, 150, 200)))

# Move so that eye at (200,150,40) is at (0,400,0)
viewer.translate([200, -150, -50])

# Change depending on screen size
field_of_view = 0.25
viewer.scale(1 / field_of_view)

# Override keyboard controls
wd.key_to_function[pygame.K_UP] = (lambda x: x.translate([0, 0, -40]))
wd.key_to_function[pygame.K_DOWN] = (lambda x: x.translate([0, 0, 40]))
wd.key_to_function[pygame.K_LEFT] = (
    lambda x: x.rotateY(-wd.rotation_amount, (width / 2, 0)))
wd.key_to_function[pygame.K_RIGHT] = (
    lambda x: x.rotateY(wd.rotation_amount, (width / 2, 0)))