Difference between revisions of "CSC111 Lab 11 2014"
(→Download) |
(→Simple Test) |
||
Line 8: | Line 8: | ||
=Simple Test= | =Simple Test= | ||
+ | <br /> | ||
+ | Verify that your library is correctly installed by running the python program below. Call it '''lab10.py'''. Make sure to save it in the same directory where you saved '''graphics.py'''. | ||
+ | <br /> | ||
<source lang="python"> | <source lang="python"> | ||
from graphicsH import GraphicsWindow | from graphicsH import GraphicsWindow | ||
Line 23: | Line 26: | ||
win.wait() | win.wait() | ||
+ | win.close() | ||
main() | main() | ||
</source> | </source> | ||
+ | <br /> | ||
=Improve on it= | =Improve on it= |
Revision as of 17:37, 15 April 2014
--D. Thiebaut (talk) 17:42, 13 April 2014 (EDT)
Contents
- 1 Creating the Graphics Library
- 2 Simple Test
- 3 Improve on it
- 4 Draw circles
- 5 Create a Rectangle Class
- 6 Create a Circle Class
- 7 Create a Circle Class with a Center
- 8 Create a class Wheel that contains two concentric circles
- 9 Generate 200 random wheels on the canvas
- 10 Create a new Class that is a car
- 11 Create a car with a top
Creating the Graphics Library
The graphics library written by Horstmann, the author of our textbook is available here. Download it and create a file called graphics.py in your current directory.
Simple Test
Verify that your library is correctly installed by running the python program below. Call it lab10.py. Make sure to save it in the same directory where you saved graphics.py.
from graphicsH import GraphicsWindow
MAXWIDTH = 800
MAXHEIGHT = 600
def main():
win = GraphicsWindow(MAXWIDTH, MAXHEIGHT)
canvas = win.canvas()
canvas.setFill( 255, 0, 0 ) # full red
canvas.drawRect( 100, 100, 300, 200 )
win.wait()
win.close()
main()
Improve on it
- Try with different colors by picking a different combination of the three ints in setFill()
- Try a random color. Hints: to generate a random number between 0 and 255, you can do this:
# at the top of the program from random import seed from random import randrange def main(): seed() ... x = randrange( 256 ):
Challenge
Generate 500 random rects of random colors at random locations
Draw circles
Create a Rectangle Class
from graphics import GraphicsWindow
from random import randrange
from random import seed
from time import sleep
MAXWIDTH = 800
MAXHEIGHT= 600
class Rectangle:
def __init__( self, x, y, width, height, color ):
self._x = x
self._y = y
self._width = width
self._height = height
self._color = color # list of 3 ints between 0 and 255
def draw( self, canvas ):
canvas.setFill( self._color[0], self._color[1], self._color[2] )
canvas.drawRect( self._x, self._y, self._width, self._height )
def twoRects( canvas ):
rect1 = Rectangle( 100, 100, 500, 20, (255, 0, 0 ) )
rect1.draw( canvas )
rect2 = Rectangle( 200, 200, 50, 200, (165, 76, 89 ) )
rect2.draw( canvas )
def fiveHundredRects( canvas ):
for i in range( 500 ):
x = randrange( MAXWIDTH*3//4 )
y = randrange( MAXHEIGHT *3//4 )
w = randrange( MAXWIDTH // 2 )
h = randrange( MAXHEIGHT // 2 )
red = randrange( 256 )
green = randrange( 256 )
blue = randrange( 256 )
rect = Rectangle( x, y, w, h, (red, green, blue ) )
rect.draw( canvas )
def main():
seed()
win = GraphicsWindow(MAXWIDTH, MAXHEIGHT)
canvas = win.canvas()
#twoRects( canvas )
fiveHundredRects( canvas )
win.wait()
win.close()
main()
Create a Circle Class
Use the example of Rectangle
Create a Circle Class with a Center
Modify the class so that the x and y passed are the x and y of the center of the circle.
Create a class Wheel that contains two concentric circles
The inside circle will be concentric with the outside one, and will always have a radius half the radius of the large one.
Generate 200 random wheels on the canvas
Create a new Class that is a car
- one rectangle
- two wheels
- x, y of top left corner of rectangle
- width and height of rectangle.
- center of 1st wheel 1/4 width from left of car
- center of 2nd wheel 1/4 width from right of car
- radius of wheel = 1/8 of car width