Class StdDraw

java.lang.Object
  extended by StdDraw
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener

public final class StdDraw
extends java.lang.Object
implements java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.KeyListener

Standard draw. Our class StdDraw provides a basic capability for creating drawings with your programs. It uses a simple graphics model that allows you to create drawings consisting of points, lines, and curves in a window on your computer and to save the drawings to a file.

For documentation, see Section 1.5 of Introduction to Programming in Java: An Interdisciplinary Approach, Spring 2007 preliminary version and http://www.cs.princeton.edu/introcs/15inout


Field Summary
static java.awt.Color BLACK
           
static java.awt.Color BLUE
           
static java.awt.Color CYAN
           
static java.awt.Color DARK_GRAY
           
static java.awt.Color GRAY
           
static java.awt.Color GREEN
           
static java.awt.Color LIGHT_GRAY
           
static java.awt.Color MAGENTA
           
static java.awt.Color ORANGE
           
static java.awt.Color PINK
           
static java.awt.Color RED
           
static java.awt.Color WHITE
           
static java.awt.Color YELLOW
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Open a save dialog when the user selects "Save As" from the menu
static void arc(double x, double y, double r, double angle1, double angle2)
          Draw an arc of radius r, centered on (x, y), from angle1 to angle2 (in degrees).
static void circle(double x, double y, double r)
          Draw circle of radius r, centered on (x, y); degenerate to pixel if small
static void clear()
          Clear the screen with the default color, white
static void clear(java.awt.Color color)
          Clear the screen with the given color.
static void filledCircle(double x, double y, double r)
          Draw filled circle of radius r, centered on (x, y); degenerate to pixel if small
static void filledPolygon(double[] x, double[] y)
          Draw a filled polygon with the given (x[i], y[i]) coordinates
static void filledSquare(double x, double y, double r)
          Draw a filled square of side length 2r, centered on (x, y); degenerate to pixel if small
static void line(double x0, double y0, double x1, double y1)
          Draw a line from (x0, y0) to (x1, y1)
static double mouseX()
          Where is the mouse?
static double mouseY()
          Where is the mouse?
static void picture(double x, double y, java.lang.String s)
          Draw picture (gif, jpg, or png) centered on (x, y).
static void picture(double x, double y, java.lang.String s, double w, double h)
          Draw picture (gif, jpg, or png) centered on (x, y).
static void point(double x, double y)
          Draw a point at (x, y)
static void polygon(double[] x, double[] y)
          Draw a polygon with the given (x[i], y[i]) coordinates
static void save(java.lang.String filename)
          Save to file - suffix must be png, jpg, or gif.
static void setCanvasSize(int w, int h)
          Set the window size to w-by-h pixels
static void setFont()
          Set the font to be the default for all string writing
static void setFont(java.awt.Font f)
          Set the font as given for all string writing
static void setPenColor()
          Set the pen color to the default which is BLACK.
static void setPenColor(java.awt.Color color)
          Set the pen color to the given color.
static void setPenRadius()
          Set the pen size to the default
static void setPenRadius(double r)
          Set the pen size to the given size
static void setXscale()
          Set the X scale to be the default
static void setXscale(double min, double max)
          Set the X scale (a border is added to the values)
static void setYscale()
          Set the Y scale to be the default
static void setYscale(double min, double max)
          Set the Y scale (a border is added to the values)
static void show()
          Display on-screen; calling this method means that the screen WILL be redrawn after each line(), circle(), or square().
static void show(int t)
          Display on screen and pause for t milliseconds.
static void square(double x, double y, double r)
          Draw squared of side length 2r, centered on (x, y); degenerate to pixel if small
static void text(double x, double y, java.lang.String s)
          Write the given text string in the current font, center on (x, y).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.awt.event.MouseListener
mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased
 
Methods inherited from interface java.awt.event.MouseMotionListener
mouseDragged, mouseMoved
 
Methods inherited from interface java.awt.event.KeyListener
keyPressed, keyReleased, keyTyped
 

Field Detail

BLACK

public static final java.awt.Color BLACK

BLUE

public static final java.awt.Color BLUE

CYAN

public static final java.awt.Color CYAN

DARK_GRAY

public static final java.awt.Color DARK_GRAY

GRAY

public static final java.awt.Color GRAY

GREEN

public static final java.awt.Color GREEN

LIGHT_GRAY

public static final java.awt.Color LIGHT_GRAY

MAGENTA

public static final java.awt.Color MAGENTA

ORANGE

public static final java.awt.Color ORANGE

PINK

public static final java.awt.Color PINK

RED

public static final java.awt.Color RED

WHITE

public static final java.awt.Color WHITE

YELLOW

public static final java.awt.Color YELLOW
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Open a save dialog when the user selects "Save As" from the menu

Specified by:
actionPerformed in interface java.awt.event.ActionListener

arc

public static void arc(double x,
                       double y,
                       double r,
                       double angle1,
                       double angle2)
Draw an arc of radius r, centered on (x, y), from angle1 to angle2 (in degrees).

Parameters:
x - the x co-ord of the center of the circle
y - the y co-ord of the center of the circle
r - the radius of the circle
angle1 - the starting angle. 0 would mean an arc beginning at 3 o'clock.
angle2 - the angle at the end of the arc. For example, if you want a 90 degree arc, then angle2 should be angle1 + 90.
Throws:
java.lang.RuntimeException - if the radius of the circle is negative

circle

public static void circle(double x,
                          double y,
                          double r)
Draw circle of radius r, centered on (x, y); degenerate to pixel if small

Parameters:
x - the x co-ord of the center of the circle
y - the y co-ord of the center of the circle
r - the radius of the circle
Throws:
java.lang.RuntimeException - if the radius of the circle is negative

clear

public static void clear()
Clear the screen with the default color, white


clear

public static void clear(java.awt.Color color)
Clear the screen with the given color. Calls show().

Parameters:
color - the Color to make the background

filledCircle

public static void filledCircle(double x,
                                double y,
                                double r)
Draw filled circle of radius r, centered on (x, y); degenerate to pixel if small

Parameters:
x - the x co-ord of the center of the circle
y - the y co-ord of the center of the circle
r - the radius of the circle
Throws:
java.lang.RuntimeException - if the radius of the circle is negative

filledPolygon

public static void filledPolygon(double[] x,
                                 double[] y)
Draw a filled polygon with the given (x[i], y[i]) coordinates

Parameters:
x - an array of all the x co-ordindates of the polygon
y - an array of all the y co-ordindates of the polygon

filledSquare

public static void filledSquare(double x,
                                double y,
                                double r)
Draw a filled square of side length 2r, centered on (x, y); degenerate to pixel if small

Parameters:
x - the x co-ord of the center of the square
y - the y co-ord of the center of the square
r - radius is half the length of any side of the square
Throws:
java.lang.RuntimeException - if r is negative

line

public static void line(double x0,
                        double y0,
                        double x1,
                        double y1)
Draw a line from (x0, y0) to (x1, y1)

Parameters:
x0 - the x co-ord of the starting point
y0 - the y co-ord of the starting point
x1 - the x co-ord of the destination point
y1 - the y co-ord of the destination point

mouseX

public static double mouseX()
Where is the mouse?

Returns:
the value of the X co-ord of the mouse

mouseY

public static double mouseY()
Where is the mouse?

Returns:
the value of the Y co-ord of the mouse

picture

public static void picture(double x,
                           double y,
                           java.lang.String s)
Draw picture (gif, jpg, or png) centered on (x, y). Calls show().

Parameters:
x - the center x co-ord of the image
y - the center y co-ord of the image
s - the name of the image/picture, i.e. "ball.gif"
Throws:
java.lang.RuntimeException - if the image's width or height are negative

picture

public static void picture(double x,
                           double y,
                           java.lang.String s,
                           double w,
                           double h)
Draw picture (gif, jpg, or png) centered on (x, y). Rescaled to w-by-h. Degenerates to pixel if small. Calls show().

Parameters:
x - the center x co-ord of the image
y - the center y co-ord of the image
s - the name of the image/picture, i.e. "ball.gif"
w - the width of the image
h - the height of the image

point

public static void point(double x,
                         double y)
Draw a point at (x, y)

Parameters:
x - the x co-ord of the point
y - the y co-ord of the point

polygon

public static void polygon(double[] x,
                           double[] y)
Draw a polygon with the given (x[i], y[i]) coordinates

Parameters:
x - an array of all the x co-ordindates of the polygon
y - an array of all the y co-ordindates of the polygon

save

public static void save(java.lang.String filename)
Save to file - suffix must be png, jpg, or gif.

Parameters:
filename - the name of the file with one of the required suffixes

setCanvasSize

public static void setCanvasSize(int w,
                                 int h)
Set the window size to w-by-h pixels

Parameters:
w - the width as a number of pixels
h - the height as a number of pixels
Throws:
a - RunTimeException if the width or height is 0 or negative.

setFont

public static void setFont()
Set the font to be the default for all string writing


setFont

public static void setFont(java.awt.Font f)
Set the font as given for all string writing

Parameters:
f - the font to make text

setPenColor

public static void setPenColor()
Set the pen color to the default which is BLACK.


setPenColor

public static void setPenColor(java.awt.Color color)
Set the pen color to the given color. The available pen colors are BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, and YELLOW.

Parameters:
color - the Color to make the pen

setPenRadius

public static void setPenRadius()
Set the pen size to the default


setPenRadius

public static void setPenRadius(double r)
Set the pen size to the given size

Parameters:
r - the radius of the pen
Throws:
java.lang.RuntimeException - if r is negative

setXscale

public static void setXscale()
Set the X scale to be the default


setXscale

public static void setXscale(double min,
                             double max)
Set the X scale (a border is added to the values)

Parameters:
min - the minimum value of the X scale
max - the maximum value of the X scale

setYscale

public static void setYscale()
Set the Y scale to be the default


setYscale

public static void setYscale(double min,
                             double max)
Set the Y scale (a border is added to the values)

Parameters:
min - the minimum value of the Y scale
max - the maximum value of the Y scale

show

public static void show()
Display on-screen; calling this method means that the screen WILL be redrawn after each line(), circle(), or square(). This is the default.


show

public static void show(int t)
Display on screen and pause for t milliseconds. Calling this method means that the screen will NOT be redrawn after each line(), circle(), or square(). This is useful when there are many methods to call to draw a complete picture.

Parameters:
t - number of milliseconds

square

public static void square(double x,
                          double y,
                          double r)
Draw squared of side length 2r, centered on (x, y); degenerate to pixel if small

Parameters:
x - the x co-ord of the center of the square
y - the y co-ord of the center of the square
r - radius is half the length of any side of the square
Throws:
java.lang.RuntimeException - if r is negative

text

public static void text(double x,
                        double y,
                        java.lang.String s)
Write the given text string in the current font, center on (x, y). Calls show().

Parameters:
x - the center x co-ord of the text
y - the center y co-ord of the text
s - the text