CSC111 lab 5 Solution Programs 2011

From dftwiki3
Jump to: navigation, search

--D. Thiebaut 17:00, 5 October 2011 (EDT)




from graphics import *

def taxi():
    win = GraphWin( "TAXI", 800, 600 )
 
    # body of car
    rect = Rectangle(Point (225, 250), Point(575, 350))
    rect.setFill('yellow')
    rect.draw(win)
 
    # top of car 
    rect2 = Rectangle(Point (300, 175), Point (500, 250))
    rect2.setFill('yellow')
    rect2.draw(win)
 
    # left window
    rect3 =Rectangle(Point(310, 180), Point( 390, 240 ) )
    rect3.setFill('white')
    rect3.draw(win)
 
    # right window
    rect4 =Rectangle( Point(410, 180), Point( 492, 242) )
    rect4.setFill('white')
    rect4.draw(win)

    # label in middle of body of car
    center = Point(400, 300) 
    label = Text ( center, "TAXI")
    label.draw(win)
 
    # wheels
    ccenter1 = Point(300, 350)
    ccenter2 = Point(500, 350)    
    wheel1 = Circle(ccenter1, 50)
    wheel1.setFill('black')
    wheel1.draw(win)
    wheel2 = Circle(ccenter2, 50)
    wheel2.setFill('black')
    wheel2.draw(win)
 
    # keep window up until user presses Enter key
    Text( Point( 400, 550 ), "Click me to close me!" ).draw( win )
    win.getMouse()
    win.close()
 
def main():
    width = 800
    height = 600
    win = GraphWin( "lab 5", width, height )

    # draw a taxi cab in its own window
    taxi()

    # circles...
    c = Circle( Point( 50, 60 ), 20 )
    c.draw( win )
    c = Circle( Point( 50+100, 60 ), 20 )
    c.draw( win )
    c = Circle( Point( 50+200, 60 ), 20 )
    c.draw( win )

    Text( Point( width/2, height*7/8 ), "Click me to continue" ).draw( win )
    win.getMouse()

    # loop with circles 
    for i in range( 0, 800, 100 ):
        c = Circle( Point( 50+i, 60 ), 20 )
        c.setFill( "yellow" )
        c.draw( win )
    win.getMouse()
    
    # diagonal of circles 
    for i in range( 0, 800, 100 ):
        c = Circle( Point( 50+i, 60+i ), 20 )
        c.setFill( "orange" )
        c.draw( win )
    win.getMouse()

    # 5 lines of 8 circles
    for i in range( 0, 800, 100 ):
        for j in range( 0, 500, 100 ):
            c = Circle( Point( 50+i, 60+j ), 20 )
            c.setWidth( 3 )
            c.setFill( "magenta" )
            c.draw( win )
    win.getMouse()
    win.close()
    
    #--- open a new window ---
    width = 200
    height= 200
    win = GraphWin( "Diagonals", width, height )

    # Lines: diagonals 
    line = Line( Point( 0, 0 ), Point( width, height ) )
    line.draw( win )
    line = Line( Point( 0, height ), Point( width, 0 ) )
    line.draw( win )
   
    msg1 = Text( Point( width/2, height*7/8 ), "Click me to continue" )
    msg1.draw( win )

    win.getMouse()

    # Lines: 45-degree lines
    for i in range( 10, 100, 10 ):
          
         line = Line( Point( 10, i ), Point( i, 10 ) )
         line.draw( win )

    msg1.undraw()
    msg2 = Text( Point( width/2, height*7/8 ), "Click me to close" )
    msg2.draw( win )
    win.getMouse()
    win.close()


main()