Class StdDraw

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 Object
implements java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.KeyListener

Standard draw. This class 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 additional documentation, see Section 1.5 of Introduction to Programming in Java: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne.


Field Summary
static java.awt.Color BLACK
           
static java.awt.Color BLUE
           
static java.awt.Color BOOK_BLUE
           
static java.awt.Color BOOK_RED
           
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)
          This method cannot be called directly.
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 a circle of radius r, centered on (x, y).
static void clear()
          Clear the screen to the default color (white).
static void clear(java.awt.Color color)
          Clear the screen to the given color.
static void filledCircle(double x, double y, double r)
          Draw filled circle of radius r, centered on (x, y).
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).
static boolean hasNextKeyTyped()
          Has the user typed a key?
 void keyPressed(java.awt.event.KeyEvent e)
          This method cannot be called directly.
 void keyReleased(java.awt.event.KeyEvent e)
          This method cannot be called directly.
 void keyTyped(java.awt.event.KeyEvent e)
          This method cannot be called directly.
static void line(double x0, double y0, double x1, double y1)
          Draw a line from (x0, y0) to (x1, y1).
static void main(String[] args)
          Test client.
 void mouseClicked(java.awt.event.MouseEvent e)
          This method cannot be called directly.
 void mouseDragged(java.awt.event.MouseEvent e)
          This method cannot be called directly.
 void mouseEntered(java.awt.event.MouseEvent e)
          This method cannot be called directly.
 void mouseExited(java.awt.event.MouseEvent e)
          This method cannot be called directly.
 void mouseMoved(java.awt.event.MouseEvent e)
          This method cannot be called directly.
static boolean mousePressed()
          Is the mouse being pressed?
 void mousePressed(java.awt.event.MouseEvent e)
          This method cannot be called directly.
 void mouseReleased(java.awt.event.MouseEvent e)
          This method cannot be called directly.
static double mouseX()
          What is the x-coordinate of the mouse?
static double mouseY()
          What is the y-coordinate of the mouse?
static char nextKeyTyped()
          What is the next key that was typed by the user?
static void picture(double x, double y, String s)
          Draw picture (gif, jpg, or png) centered on (x, y).
static void picture(double x, double y, String s, double degrees)
          Draw picture (gif, jpg, or png) centered on (x, y), rotated given number of degrees
static void picture(double x, double y, String s, double w, double h)
          Draw picture (gif, jpg, or png) centered on (x, y), rescaled to w-by-h.
static void picture(double x, double y, String s, double w, double h, double degrees)
          Draw picture (gif, jpg, or png) centered on (x, y), rotated given number of degrees, rescaled to w-by-h.
static void pixel(double x, double y)
          Draw one pixel at (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(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 the default font (sans serif, 16 point).
static void setFont(java.awt.Font f)
          Set the font to the given value.
static void setPenColor()
          Set the pen color to the default color (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 (.002).
static void setPenRadius(double r)
          Set the radius of the pen to the given size.
static void setXscale()
          Set the x-scale to be the default (between 0.0 and 1.0).
static void setXscale(double min, double max)
          Set the x-scale (a 10% border is added to the values)
static void setYscale()
          Set the y-scale to be the default (between 0.0 and 1.0).
static void setYscale(double min, double max)
          Set the y-scale (a 10% border is added to the values).
static void show()
          Display on-screen and turn off animation mode: subsequent calls to drawing methods such as line(), circle(), and square() will be displayed on screen when called.
static void show(int t)
          Display on screen, pause for t milliseconds, and turn on animation mode: subsequent calls to drawing methods such as line(), circle(), and square() will not be displayed on screen until the next call to show().
static void square(double x, double y, double r)
          Draw a square of side length 2r, centered on (x, y).
static void text(double x, double y, String s)
          Write the given text string in the current font, centered on (x, y).
static void textLeft(double x, double y, String s)
          Write the given text string in the current font, left-aligned at (x, y).
static void textRight(double x, double y, String s)
          Write the given text string in the current font, right-aligned at (x, y).
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

BOOK_BLUE

public static final java.awt.Color BOOK_BLUE

BOOK_RED

public static final java.awt.Color BOOK_RED
Method Detail

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

setXscale

public static void setXscale()
Set the x-scale to be the default (between 0.0 and 1.0).


setYscale

public static void setYscale()
Set the y-scale to be the default (between 0.0 and 1.0).


setXscale

public static void setXscale(double min,
                             double max)
Set the x-scale (a 10% 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(double min,
                             double max)
Set the y-scale (a 10% border is added to the values).

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

clear

public static void clear()
Clear the screen to the default color (white).


clear

public static void clear(java.awt.Color color)
Clear the screen to the given color.

Parameters:
color - the Color to make the background

setPenRadius

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


setPenRadius

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

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

setPenColor

public static void setPenColor()
Set the pen color to the default color (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

setFont

public static void setFont()
Set the font to the default font (sans serif, 16 point).


setFont

public static void setFont(java.awt.Font f)
Set the font to the given value.

Parameters:
f - the font to make text

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-coordinate of the starting point
y0 - the y-coordinate of the starting point
x1 - the x-coordinate of the destination point
y1 - the y-coordinate of the destination point

pixel

public static void pixel(double x,
                         double y)
Draw one pixel at (x, y).

Parameters:
x - the x-coordinate of the pixel
y - the y-coordinate of the pixel

point

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

Parameters:
x - the x-coordinate of the point
y - the y-coordinate of the point

circle

public static void circle(double x,
                          double y,
                          double r)
Draw a circle of radius r, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the circle
y - the y-coordinate of the center of the circle
r - the radius of the circle
Throws:
RuntimeException - if the radius of the circle is negative

filledCircle

public static void filledCircle(double x,
                                double y,
                                double r)
Draw filled circle of radius r, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the circle
y - the y-coordinate of the center of the circle
r - the radius of the circle
Throws:
RuntimeException - if the radius of the circle is negative

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-coordinate of the center of the circle
y - the y-coordinate 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:
RuntimeException - if the radius of the circle is negative

square

public static void square(double x,
                          double y,
                          double r)
Draw a square of side length 2r, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the square
y - the y-coordinate of the center of the square
r - radius is half the length of any side of the square
Throws:
RuntimeException - if r is negative

filledSquare

public static void filledSquare(double x,
                                double y,
                                double r)
Draw a filled square of side length 2r, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the square
y - the y-coordinate of the center of the square
r - radius is half the length of any side of the square
Throws:
RuntimeException - if r is negative

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-coordindates of the polygon
y - an array of all the y-coordindates of the polygon

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-coordindates of the polygon
y - an array of all the y-coordindates of the polygon

picture

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

Parameters:
x - the center x-coordinate of the image
y - the center y-coordinate of the image
s - the name of the image/picture, e.g., "ball.gif"
Throws:
RuntimeException - if the image is corrupt

picture

public static void picture(double x,
                           double y,
                           String s,
                           double degrees)
Draw picture (gif, jpg, or png) centered on (x, y), rotated given number of degrees

Parameters:
x - the center x-coordinate of the image
y - the center y-coordinate of the image
s - the name of the image/picture, e.g., "ball.gif"
degrees - is the number of degrees to rotate counterclockwise
Throws:
RuntimeException - if the image is corrupt

picture

public static void picture(double x,
                           double y,
                           String s,
                           double w,
                           double h)
Draw picture (gif, jpg, or png) centered on (x, y), rescaled to w-by-h.

Parameters:
x - the center x coordinate of the image
y - the center y coordinate of the image
s - the name of the image/picture, e.g., "ball.gif"
w - the width of the image
h - the height of the image
Throws:
RuntimeException - if the image is corrupt

picture

public static void picture(double x,
                           double y,
                           String s,
                           double w,
                           double h,
                           double degrees)
Draw picture (gif, jpg, or png) centered on (x, y), rotated given number of degrees, rescaled to w-by-h.

Parameters:
x - the center x-coordinate of the image
y - the center y-coordinate of the image
s - the name of the image/picture, e.g., "ball.gif"
w - the width of the image
h - the height of the image
degrees - is the number of degrees to rotate counterclockwise
Throws:
RuntimeException - if the image is corrupt

text

public static void text(double x,
                        double y,
                        String s)
Write the given text string in the current font, centered on (x, y).

Parameters:
x - the center x-coordinate of the text
y - the center y-coordinate of the text
s - the text

textLeft

public static void textLeft(double x,
                            double y,
                            String s)
Write the given text string in the current font, left-aligned at (x, y).

Parameters:
x - the x-coordinate of the text
y - the y-coordinate of the text
s - the text

textRight

public static void textRight(double x,
                             double y,
                             String s)
Write the given text string in the current font, right-aligned at (x, y).

Parameters:
x - the x-coordinate of the text
y - the y-coordinate of the text
s - the text

show

public static void show(int t)
Display on screen, pause for t milliseconds, and turn on animation mode: subsequent calls to drawing methods such as line(), circle(), and square() will not be displayed on screen until the next call to show(). This is useful for producing animations (clear the screen, draw a bunch of shapes, display on screen for a fixed amount of time, and repeat). It also speeds up drawing a huge number of shapes (call show(0) to defer drawing on screen, draw the shapes, and call show(0) to display them all on screen at once).

Parameters:
t - number of milliseconds

show

public static void show()
Display on-screen and turn off animation mode: subsequent calls to drawing methods such as line(), circle(), and square() will be displayed on screen when called. This is the default.


save

public static void save(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

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
This method cannot be called directly.

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

mousePressed

public static boolean mousePressed()
Is the mouse being pressed?

Returns:
true or false

mouseX

public static double mouseX()
What is the x-coordinate of the mouse?

Returns:
the value of the x-coordinate of the mouse

mouseY

public static double mouseY()
What is the y-coordinate of the mouse?

Returns:
the value of the y-coordinate of the mouse

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
This method cannot be called directly.

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

hasNextKeyTyped

public static boolean hasNextKeyTyped()
Has the user typed a key?

Returns:
true if the user has typed a key, false otherwise

nextKeyTyped

public static char nextKeyTyped()
What is the next key that was typed by the user?

Returns:
the next key typed

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
This method cannot be called directly.

Specified by:
keyTyped in interface java.awt.event.KeyListener

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
This method cannot be called directly.

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
This method cannot be called directly.

Specified by:
keyReleased in interface java.awt.event.KeyListener

main

public static void main(String[] args)
Test client.