How to Think Like a Computer Scientist: Learning with Python 2nd Edition/GASP

= Graphics API for Students of Python: GASP =

Introduction
Describe gasp here...

Coordinates
(0, 0) is at the bottom left of the window. The window is 640 pixels by 480, by default. (You can make it a different size if you want to.) Coordinates are given in units of one pixel.

All functions that take coordinates take them as a tuple (x, y).

Colors
To access the color module GASP has to offer. Call color.* where * is the color you wish to call. For example: ` color.BLACK ` This is the color black. Check out the gasp color refrence chart to see all of the available color options.

The Essentials
These are the essentials. ` from gasp import * ` imports the gasp module, begin_graphics starts the graphics window, and end_graphics quits the graphics window and ends the program. It's dead simple, but also dead necessary.

begin_graphics
This creates a graphics window with the dimensions 800x600, a title of My Game, and a background color of yellow. With no arguments you get a white 640x480 graphics window titled Gasp.


 * width
 * The width of the window in pixels.


 * height
 * The windows height in pixels.


 * title
 * A string that will be the title of the window.


 * background
 * It is the background of the graphics window. It can either be a color or an image

end_graphics
Ends a graphics window.

clear_screen
Clears everything off of the graphics window. It looks like a new graphcs window as if you just called begin_graphics.

remove_from_screen
removes those objects from the screen


 * obj
 * A screen object of a list of screen_objects you would like to remove from the screen

Screen Objects
The objects that you will be displayed in your graphics window. You can manipulate these objects using the screen object methods

Plot
It puts a dot on the screen.


 * pos
 * The coordinate on the screen that you wish to plot.


 * color
 * The color you wish the dot to be.


 * size
 * An integer that determines the size the of the dot

Line
Creates a line on the screen.


 * start
 * The starting coordinate of the line.


 * end
 * The coordinate at which the line will end.


 * color
 * The color of the line

Box
This creates a Box on the screen


 * center
 * A coordinate where the center of your box will be.


 * width
 * The width in pixels of the box.


 * height
 * The height of the box in pixels.


 * filled
 * A boolean value that determines if your box will be filled


 * color
 * The color of your box.


 * thickness
 * The thickness in pixels of your box's lines.

Polygon
Creates a polygon on the screen


 * points
 * A list of coordinates that is each point on the polygon. The must be more than two items in the list


 * filled
 * A boolean value. If it is False the polygon will not be filled. Else, the polygon will not be filled


 * color
 * The color of the polygon's lines


 * thickness
 * An integer that determines the thickness of the lines.

Circle
Draws a circle, its center is a set of coordinates, and the radius is in pixels. It defaults to not being filled and the color black.


 * center
 * The circle's center coordinate.


 * width
 * An integer that is the radius of the circle


 * filled
 * A boolean value that determines if your circle will be filled


 * color
 * The color of your circle.


 * thickness
 * The thickness in pixels of the circles lines.

Arc
Creates an arc on the screen.


 * center
 * A coordinate that is the center of the arc.


 * radius
 * An integer that is the distance between the center and the outer edge of the arc.


 * start_angle
 * The start angle in degrees of the arc


 * end_angle
 * The end angle in degrees of your arc


 * filled
 * A boolean value that if True it fills the arc


 * color
 * The color the arc


 * thickness
 * The thickness in pixels of the arc

Oval
Puts an oval on the screen wherever you want.


 * center
 * The center coordinate of the Oval


 * width
 * The width in pixels of the oval


 * height
 * The height of the oval in pixels


 * filled
 * A boolean value determining if the oval will be filles or not.


 * color
 * The oval's color


 * thickness
 * The thickness of the ovals lines

Image
Loads an image onto the screen. If you only pass a width and not a height it automatically scales the height to fit the width you passed it. It behaves likewise when you pass just a height.


 * file_path
 * The path to the image


 * center
 * The center coordinates of the image


 * width
 * The width of the image in pixels. If width equals None then it defaults to the image file's width


 * height
 * The height of the image in pixels. If no height is passed it defaults to the image file's height

Screen Object Methods
The methods that manipulates screen objects

move_to
Move a screen object to a pos


 * obj
 * A screen object you wish to move.


 * pos
 * The coordinate on the screen that the object will move to

move_by
Move a screen object relative to it's position


 * obj
 * The screen object you wish to move


 * dx
 * How much the object will move in the 'x' direction. Positive or negative.


 * dy
 * How much the object will move in the 'y' direction. A pixel value.

rotate_to
Rotate an object to an angle


 * obj
 * The screen object that will be rotated


 * angle
 * The angle in degrees that the object will be rotated to

rotate_by
Rotate an object a certain degree.


 * obj
 * The screen object you wish to rotate


 * angle
 * The degree that the object will be rotate. Can be positive or negative.

Text
Puts text on the screen


 * text
 * A string of the text that will be displayed


 * pos
 * The center coordinate of the text


 * color
 * The color of the text


 * size
 * The font size

mouse_position
Returns the current mouse coordinate

mouse_buttons
returns a dictionary of the buttons state. There is a 'left', 'middle', and 'right' key.

keys_pressed
returns a list of all of the keys pressed at that moment.

screen_shot
Saves a screenshot of the current graphics screen to a png file.


 * filename
 * The file path relative to the current directory that the image will be written to.