StdDraw Methods

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

This version is adapted for CS141 from Section 1.5 of Introduction to Programming in Java: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne.


Final Variable Summary
Color BLACK
           
Color BLUE
           
Color BOOK_BLUE
          Shade of blue used in Introduction to Programming in Java.
Color BOOK_LIGHT_BLUE
           
Color BOOK_RED
          Shade of red used in Algorithms 4th edition.
Color CYAN
           
Color DARK_GRAY
           
Color GRAY
           
Color GREEN
           
Color LIGHT_GRAY
           
Color MAGENTA
           
Color ORANGE
           
Color BROWN
           
Color PINK
           
Color RED
           
Color WHITE
           
Color YELLOW
           
 
Method Summary
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(Color color)
          Clear the screen to the given color.
static void ellipse(double x, double y, double semiMajorAxis, double semiMinorAxis)
          Draw an ellipse with given semimajor and semiminor axes, centered on (x, y).
static void filledCircle(double x, double y, double r)
          Draw filled circle of radius r, centered on (x, y).
static void filledEllipse(double x, double y, double semiMajorAxis, double semiMinorAxis)
          Draw an ellipse with given semimajor and semiminor axes, 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 filledRectangle(double x, double y, double halfWidth, double halfHeight)
          Draw a filled rectangle of given half width and half height, centered on (x, y).
static void filledSquare(double x, double y, double r)
          Draw a filled square of side length 2r, centered on (x, y).
Font getFont()
          Get the current font.
Color getPenColor()
          Get the current pen color.
static double getPenRadius()
          Get the current pen radius.
static boolean hasNextKeyTyped()
          Has the user typed a key?
static void line(double x0, double y0, double x1, double y1)
          Draw a line from (x0, y0) to (x1, y1).
static boolean mousePressed()
          Is the mouse being pressed?
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 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 rectangle(double x, double y, double halfWidth, double halfHeight)
          Draw a rectangle of given half width and half height, centered on (x, y).
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(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).
double getXmin()
          Get the minimum x value.
double getXmax()
          Get the maximum x value.
double getYmin()
          Get the minimum y value.
double getYmax()
          Get the maximum y value.
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 text(double x, double y, String s, double degrees)
          Write the given text string in the current font, centered on (x, y) and rotated by the specified number of degrees
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

 final Color BLACK

BLUE

 final Color BLUE

CYAN

 final Color CYAN

DARK_GRAY

 final Color DARK_GRAY

GRAY

 final Color GRAY

GREEN

 final Color GREEN

LIGHT_GRAY

 final Color LIGHT_GRAY

MAGENTA

 final Color MAGENTA

ORANGE

 final Color ORANGE

BROWN

 final Color BROWN

PINK

 final Color PINK

RED

 final Color RED

WHITE

 final Color WHITE

YELLOW

 final Color YELLOW

BOOK_BLUE

 final Color BOOK_BLUE
Shade of blue used in Introduction to Programming in Java. It is Pantone Pantone 300U. The RGB values are approximately (9, 90, 266).


BOOK_LIGHT_BLUE

 final Color BOOK_LIGHT_BLUE

BOOK_RED

 final Color BOOK_RED
Shade of red used in Algorithms 4th edition. It is Pantone 1805U. The approximate RGB values are (150, 35, 31).

Method Detail

setCanvasSize

 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

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


setYscale

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


setXscale

 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

 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

getXmin

 double getXmin()
Get the minimum x value.

getXmax

 double getXmax()
Get the maximum x value.

getYmin

 double getYmin()
Get the minimum y value.

getYmax

 double getYmax()
Get the maximum y value.

clear

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


clear

 void clear(Color color)
Clear the screen to the given color.

Parameters:
color - the Color to make the background

getPenRadius

 double getPenRadius()
Get the current pen radius.


setPenRadius

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


setPenRadius

 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

getPenColor

 Color getPenColor()
Get the current pen color.


setPenColor

 void setPenColor()
Set the pen color to the default color (black).


setPenColor

 void setPenColor(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

getFont

 java.awt.Font getFont()
Get the current font.


setFont

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


setFont

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

Parameters:
f - the font to make text

line

 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

point

 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

 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

 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

ellipse

 void ellipse(double x,
              double y,
              double semiMajorAxis,
              double semiMinorAxis)
Draw an ellipse with given semimajor and semiminor axes, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the ellipse
y - the y-coordinate of the center of the ellipse
semiMajorAxis - is the semimajor axis of the ellipse
semiMinorAxis - is the semiminor axis of the ellipse
Throws:
RuntimeException - if either of the axes are negative

filledEllipse

 void filledEllipse(double x,
                    double y,
                    double semiMajorAxis,
                    double semiMinorAxis)
Draw an ellipse with given semimajor and semiminor axes, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the ellipse
y - the y-coordinate of the center of the ellipse
semiMajorAxis - is the semimajor axis of the ellipse
semiMinorAxis - is the semiminor axis of the ellipse
Throws:
RuntimeException - if either of the axes are negative

arc

 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

 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

 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

rectangle

 void rectangle(double x,
                double y,
                double halfWidth,
                double halfHeight)
Draw a rectangle of given half width and half height, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the rectangle
y - the y-coordinate of the center of the rectangle
halfWidth - is half the width of the rectangle
halfHeight - is half the height of the rectangle
Throws:
RuntimeException - if halfWidth or halfHeight is negative

filledRectangle

 void filledRectangle(double x,
                      double y,
                      double halfWidth,
                      double halfHeight)
Draw a filled rectangle of given half width and half height, centered on (x, y).

Parameters:
x - the x-coordinate of the center of the rectangle
y - the y-coordinate of the center of the rectangle
halfWidth - is half the width of the rectangle
halfHeight - is half the height of the rectangle
Throws:
RuntimeException - if halfWidth or halfHeight is negative

polygon

 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

 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

 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

 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

 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 width height are negative
RuntimeException - if the image is corrupt

picture

 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

 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

text

 void text(double x,
           double y,
           String s,
           double degrees)
Write the given text string in the current font, centered on (x, y) and rotated by the specified number of degrees

Parameters:
x - the center x-coordinate of the text
y - the center y-coordinate of the text
s - the text
degrees - is the number of degrees to rotate counterclockwise

textLeft

 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

 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

 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

 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

 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

mousePressed

 boolean mousePressed()
Is the mouse being pressed?

Returns:
true or false

mouseX

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

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

mouseY

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

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

hasNextKeyTyped

 boolean hasNextKeyTyped()
Has the user typed a key?

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

nextKeyTyped

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

Returns:
the next key typed