From 3c296a09c493217a2c9ab0a8251eb1fc4535dfca Mon Sep 17 00:00:00 2001 From: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 8 Nov 2020 03:27:41 +0530 Subject: [PATCH] Deploy to GitHub Pages --- allclasses-frame.html | 21 + allclasses-noframe.html | 21 + constant-values.html | 120 ++ deprecated-list.html | 150 ++ help-doc.html | 217 +++ index-all.html | 624 ++++++++ index.html | 72 + output/allclasses-frame.html | 21 + output/allclasses-noframe.html | 21 + output/constant-values.html | 120 ++ output/deprecated-list.html | 150 ++ output/help-doc.html | 217 +++ output/index-all.html | 624 ++++++++ output/index.html | 72 + output/overview-tree.html | 135 ++ output/package-list | 1 + output/script.js | 30 + output/src/StdDraw.html | 2580 +++++++++++++++++++++++++++++++ output/src/TheArtist.html | 237 +++ output/src/TheCanvas.html | 288 ++++ output/src/package-frame.html | 22 + output/src/package-summary.html | 153 ++ output/src/package-tree.html | 131 ++ output/stylesheet.css | 574 +++++++ overview-tree.html | 135 ++ package-list | 1 + script.js | 30 + src/StdDraw.html | 2580 +++++++++++++++++++++++++++++++ src/TheArtist.html | 237 +++ src/TheCanvas.html | 288 ++++ src/package-frame.html | 22 + src/package-summary.html | 153 ++ src/package-tree.html | 131 ++ stylesheet.css | 574 +++++++ 34 files changed, 10752 insertions(+) create mode 100644 allclasses-frame.html create mode 100644 allclasses-noframe.html create mode 100644 constant-values.html create mode 100644 deprecated-list.html create mode 100644 help-doc.html create mode 100644 index-all.html create mode 100644 index.html create mode 100644 output/allclasses-frame.html create mode 100644 output/allclasses-noframe.html create mode 100644 output/constant-values.html create mode 100644 output/deprecated-list.html create mode 100644 output/help-doc.html create mode 100644 output/index-all.html create mode 100644 output/index.html create mode 100644 output/overview-tree.html create mode 100644 output/package-list create mode 100644 output/script.js create mode 100644 output/src/StdDraw.html create mode 100644 output/src/TheArtist.html create mode 100644 output/src/TheCanvas.html create mode 100644 output/src/package-frame.html create mode 100644 output/src/package-summary.html create mode 100644 output/src/package-tree.html create mode 100644 output/stylesheet.css create mode 100644 overview-tree.html create mode 100644 package-list create mode 100644 script.js create mode 100644 src/StdDraw.html create mode 100644 src/TheArtist.html create mode 100644 src/TheCanvas.html create mode 100644 src/package-frame.html create mode 100644 src/package-summary.html create mode 100644 src/package-tree.html create mode 100644 stylesheet.css diff --git a/allclasses-frame.html b/allclasses-frame.html new file mode 100644 index 0000000..eab9fe8 --- /dev/null +++ b/allclasses-frame.html @@ -0,0 +1,21 @@ + + + +
+ +| Method and Description | +
|---|
| src.StdDraw.mousePressed()
+ replaced by
+StdDraw.isMousePressed() |
+
| src.StdDraw.show(int)
+ replaced by
+StdDraw.enableDoubleBuffering(), StdDraw.show(),
+ and StdDraw.pause(int t) |
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+Each annotation type has its own separate page with the following sections:
+Each enum has its own separate page with the following sections:
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+These links take you to the next or previous class, interface, package, or related page.
+These links show and hide the HTML frames. All pages are available with or without frames.
+The All Classes link shows all classes and interfaces except non-static nested types.
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+The Constant Field Values page lists the static final fields and their values.
+StdDraw.isMousePressed()StdDraw.enableDoubleBuffering(), StdDraw.show(),
+ and StdDraw.pause(int t)StdDraw class provides a basic capability for creating drawings
+ with your programs.| Method and Description | +
|---|
| src.StdDraw.mousePressed()
+ replaced by
+StdDraw.isMousePressed() |
+
| src.StdDraw.show(int)
+ replaced by
+StdDraw.enableDoubleBuffering(), StdDraw.show(),
+ and StdDraw.pause(int t) |
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+Each annotation type has its own separate page with the following sections:
+Each enum has its own separate page with the following sections:
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+These links take you to the next or previous class, interface, package, or related page.
+These links show and hide the HTML frames. All pages are available with or without frames.
+The All Classes link shows all classes and interfaces except non-static nested types.
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+The Constant Field Values page lists the static final fields and their values.
+StdDraw.isMousePressed()StdDraw.enableDoubleBuffering(), StdDraw.show(),
+ and StdDraw.pause(int t)StdDraw class provides a basic capability for creating drawings
+ with your programs.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
+StdDraw 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, squares, circles, and other geometric
+ shapes in a window on your computer and to save the drawings to a file.
+ Standard drawing also includes facilities for text, color, pictures, and
+ animation, along with user interaction via the keyboard and mouse.
+
+ Getting started. To use this class, you must have
+ StdDraw.class in your Java classpath. If you used our autoinstaller,
+ you should be all set. Otherwise, either download stdlib.jar and
+ add to your Java classpath or download StdDraw.java
+ and put a copy in your working directory.
+
+ Now, type the following short program into your editor: + +
+ public class TestStdDraw {
+ public static void main(String[] args) {
+ StdDraw.setPenRadius(0.05);
+ StdDraw.setPenColor(StdDraw.BLUE);
+ StdDraw.point(0.5, 0.5);
+ StdDraw.setPenColor(StdDraw.MAGENTA);
+ StdDraw.line(0.2, 0.2, 0.8, 0.2);
+ }
+ }
+
+
+ If you compile and execute the program, you should see a window appear with a
+ thick magenta line and a blue point. This program illustrates the two main
+ types of methods in standard drawing—methods that draw geometric shapes and
+ methods that control drawing parameters. The methods StdDraw.line()
+ and StdDraw.point() draw lines and points; the methods
+ StdDraw.setPenRadius() and StdDraw.setPenColor() control the
+ line thickness and color.
+ + Points and lines. You can draw points and line segments with the + following methods: +
++ The x- and y-coordinates must be in the drawing area + (between 0 and 1 and by default) or the points and lines will not be visible. +
+ Squares, circles, rectangles, and ellipses. You can draw squares, + circles, rectangles, and ellipses using the following methods: +
circle(double x, double y, double radius)
+ ellipse(double x, double y, double semiMajorAxis, double semiMinorAxis)
+ square(double x, double y, double halfLength)
+ rectangle(double x, double y, double halfWidth, double halfHeight)
+ + All of these methods take as arguments the location and size of the shape. + The location is always specified by the x- and + y-coordinates of its center. The size of a circle is + specified by its radius and the size of an ellipse is specified by the + lengths of its semi-major and semi-minor axes. The size of a square or + rectangle is specified by its half-width or half-height. The convention for + drawing squares and rectangles is parallel to those for drawing circles and + ellipses, but may be unexpected to the uninitiated. +
+ The methods above trace outlines of the given shapes. The following methods + draw filled versions: +
filledCircle(double x, double y, double radius)
+ filledEllipse(double x, double y, double semiMajorAxis, double semiMinorAxis)
+ filledSquare(double x, double y, double radius)
+ filledRectangle(double x, double y, double halfWidth, double halfHeight)
+ + Circular arcs. You can draw circular arcs with the following method: +
+
+ The arc is from the circle centered at (x, y) of the
+ specified radius. The arc extends from angle1 to angle2. By convention, the
+ angles are polar (counterclockwise angle from the x-axis)
+ and represented in degrees. For example,
+ StdDraw.arc(0.0, 0.0, 1.0, 0, 90) draws the arc of the unit circle
+ from 3 o'clock (0 degrees) to 12 o'clock (90 degrees).
+
+ Polygons. You can draw polygons with the following methods: +
+
+ The points in the polygon are (x[i], y[i]). For example, the
+ following code fragment draws a filled diamond with vertices (0.1, 0.2),
+ (0.2, 0.3), (0.3, 0.2), and (0.2, 0.1):
+
+
+ double[] x = { 0.1, 0.2, 0.3, 0.2 };
+ double[] y = { 0.2, 0.3, 0.2, 0.1 };
+ StdDraw.filledPolygon(x, y);
+
+ + Pen size. The pen is circular, so that when you set the pen radius to + r and draw a point, you get a circle of radius r. Also, + lines are of thickness 2r and have rounded ends. The default pen + radius is 0.005 and is not affected by coordinate scaling. This default pen + radius is about 1/200 the width of the default canvas, so that if you draw + 100 points equally spaced along a horizontal or vertical line, you will be + able to see individual circles, but if you draw 200 such points, the result + will look like a line. +
+
+ For example, StdDraw.setPenRadius(0.025) makes the thickness of the
+ lines and the size of the points to be five times the 0.005 default. To draw
+ points with the minimum possible radius (one pixel on typical displays), set
+ the pen radius to 0.0.
+
+ Pen color. All geometric shapes (such as points, lines, and circles) + are drawn using the current pen color. By default, it is black. You can + change the pen color with the following methods: +
+
+ The first method allows you to specify colors using the RGB color system.
+ This color picker is a
+ convenient way to find a desired color. The second method allows you to
+ specify colors using the Color data type that is discussed in Chapter
+ 3. Until then, you can use this method with one of these predefined colors in
+ standard drawing: BLACK, BLUE, CYAN,
+ DARK_GRAY, GRAY, GREEN, LIGHT_GRAY,
+ MAGENTA, ORANGE, PINK, RED,
+ WHITE, YELLOW, BOOK_BLUE,
+ BOOK_LIGHT_BLUE, BOOK_RED, and PRINCETON_ORANGE.
+ For example, StdDraw.setPenColor(StdDraw.MAGENTA) sets the pen color
+ to magenta.
+
+ Canvas size. By default, all drawing takes places in a 512-by-512 + canvas. The canvas does not include the window title or window border. You + can change the size of the canvas with the following method: +
+
+ This sets the canvas size to be width-by-height pixels. It
+ also erases the current drawing and resets the coordinate system, pen radius,
+ pen color, and font back to their default values. Ordinarly, this method is
+ called once, at the very beginning of a program. For example,
+ StdDraw.setCanvasSize(800, 800) sets the canvas size to be 800-by-800
+ pixels.
+
+ Canvas scale and coordinate system. By default, all drawing takes + places in the unit square, with (0, 0) at lower left and (1, 1) at upper + right. You can change the default coordinate system with the following + methods: +
setXscale(double xmin, double xmax)
+ setYscale(double ymin, double ymax)
+ setScale(double min, double max)
+
+ The arguments are the coordinates of the minimum and maximum x- or
+ y-coordinates that will appear in the canvas. For example, if you
+ wish to use the default coordinate system but leave a small margin, you can
+ call StdDraw.setScale(-.05, 1.05).
+
+ These methods change the coordinate system for subsequent drawing commands; + they do not affect previous drawings. These methods do not change the canvas + size; so, if the x- and y-scales are different, squares + will become rectangles and circles will become ellipses. +
+ Text. You can use the following methods to annotate your drawings with + text: +
text(double x, double y, String text)
+ text(double x, double y, String text, double degrees)
+ textLeft(double x, double y, String text)
+ textRight(double x, double y, String text)
+ + The first two methods write the specified text in the current font, centered + at (x, y). The second method allows you to rotate the text. + The last two methods either left- or right-align the text at (x, + y). +
+ The default font is a Sans Serif font with point size 16. You can use the + following method to change the font: +
+
+ You use the Font data type to specify the font. This allows you to
+ choose the face, size, and style of the font. For example, the following code
+ fragment sets the font to Arial Bold, 60 point.
+
+
+ Font font = new Font("Arial", Font.BOLD, 60);
+ StdDraw.setFont(font);
+ StdDraw.text(0.5, 0.5, "Hello, World");
+
+ + Images. You can use the following methods to add images to your + drawings: +
picture(double x, double y, String filename)
+ picture(double x, double y, String filename, double degrees)
+ picture(double x, double y, String filename, double scaledWidth, double scaledHeight)
+ picture(double x, double y, String filename, double scaledWidth, double scaledHeight, double degrees)
+ + These methods draw the specified image, centered at (x, y). + The supported image formats are JPEG, PNG, and GIF. The image will display at + its native size, independent of the coordinate system. Optionally, you can + rotate the image a specified number of degrees counterclockwise or rescale it + to fit snugly inside a width-by-height bounding box. +
+ Saving to a file. You save your image to a file using the File → + Save menu option. You can also save a file programatically using the + following method: +
++ The supported image formats are JPEG and PNG. The filename must have either + the extension .jpg or .png. We recommend using PNG for drawing that consist + solely of geometric shapes and JPEG for drawings that contains pictures. +
+ Clearing the canvas. To clear the entire drawing canvas, you can use + the following methods: +
clear()
+ clear(Color color)
+
+ The first method clears the canvas to white; the second method allows you to
+ specify a color of your choice. For example,
+ StdDraw.clear(StdDraw.LIGHT_GRAY) clears the canvas to a shade of
+ gray.
+
+ Computer animations and double buffering. Double buffering is one of + the most powerful features of standard drawing, enabling computer animations. + The following methods control the way in which objects are drawn: +
+
+ By default, double buffering is disabled, which means that as soon as you
+ call a drawing method—such as point() or line()—the results
+ appear on the screen.
+
+ When double buffering is enabled by calling enableDoubleBuffering(),
+ all drawing takes place on the offscreen canvas. The offscreen
+ canvas is not displayed. Only when you call show() does your drawing
+ get copied from the offscreen canvas to the onscreen canvas, where it is
+ displayed in the standard drawing window. You can think of double buffering
+ as collecting all of the lines, points, shapes, and text that you tell it to
+ draw, and then drawing them all simultaneously, upon request.
+
+ The most important use of double buffering is to produce computer animations, + creating the illusion of motion by rapidly displaying static drawings. To + produce an animation, repeat the following four steps: +
+ The clear(), show(), and pause(int t) methods
+ support the first, third, and fourth of these steps, respectively.
+
+ For example, this code fragment animates two balls moving in a circle. + +
+ StdDraw.setScale(-2, +2);
+ StdDraw.enableDoubleBuffering();
+
+ for (double t = 0.0; true; t += 0.02) {
+ double x = Math.sin(t);
+ double y = Math.cos(t);
+ StdDraw.clear();
+ StdDraw.filledCircle(x, y, 0.05);
+ StdDraw.filledCircle(-x, -y, 0.05);
+ StdDraw.show();
+ StdDraw.pause(20);
+ }
+
+ + Keyboard and mouse inputs. Standard drawing has very basic support for + keyboard and mouse input. It is much less powerful than most user interface + libraries provide, but also much simpler. You can use the following methods + to intercept mouse events: +
isMousePressed()
+ mouseX()
+ mouseY()
+ + The first method tells you whether a mouse button is currently being pressed. + The last two methods tells you the x- and y-coordinates of + the mouse's current position, using the same coordinate system as the canvas + (the unit square, by default). You should use these methods in an animation + loop that waits a short while before trying to poll the mouse for its current + state. You can use the following methods to intercept keyboard events: +
++ If the user types lots of keys, they will be saved in a list until you + process them. The first method tells you whether the user has typed a key + (that your program has not yet processed). The second method returns the next + key that the user typed (that your program has not yet processed) and removes + it from the list of saved keystrokes. The third method tells you whether a + key is currently being pressed. +
+ Accessing control parameters. You can use the following methods to + access the current pen color, pen radius, and font: +
getPenColor()
+ getPenRadius()
+ getFont()
+ + These methods are useful when you want to temporarily change a control + parameter and reset it back to its original value. +
+ Corner cases. Here are some corner cases. +
null argument will throw an
+ IllegalArgumentException.
+ Double.NaN,
+ Double.POSITIVE_INFINITY, or Double.NEGATIVE_INFINITY
+ argument will throw an IllegalArgumentException.
+ + Performance tricks. Standard drawing is capable of drawing large + amounts of data. Here are a few tricks and tips: +
enableDoubleBuffering() before the sequence
+ of drawing commands and call show() afterwards. Incrementally
+ displaying a complex drawing while it is being created can be intolerably
+ inefficient on many computer systems.
+ show() only once per
+ frame, not after drawing each individual object.
+ picture() multiple times with the same filename, Java
+ will cache the image, so you do not incur the cost of reading from a file
+ each time.
+ + Known bugs and issues. +
picture() methods may not draw the portion of the image that
+ is inside the canvas if the center point (x, y) is outside
+ the canvas. This bug appears only on some systems.
+ + Reference. For additional documentation, see + Section 1.5 of + Computer Science: An Interdisciplinary Approach by Robert Sedgewick + and Kevin Wayne.
| Modifier and Type | +Field and Description | +
|---|---|
static java.awt.Color |
+BLACK
+The color black.
+ |
+
static java.awt.Color |
+BLUE
+The color blue.
+ |
+
static java.awt.Color |
+BOOK_BLUE
+Shade of blue used in Introduction to Programming in Java.
+ |
+
static java.awt.Color |
+BOOK_LIGHT_BLUE
+Shade of light blue used in Introduction to Programming in Java.
+ |
+
static java.awt.Color |
+BOOK_RED
+Shade of red used in Algorithms, 4th edition.
+ |
+
static java.awt.Color |
+CYAN
+The color cyan.
+ |
+
static java.awt.Color |
+DARK_GRAY
+The color dark gray.
+ |
+
static java.awt.Color |
+GRAY
+The color gray.
+ |
+
static java.awt.Color |
+GREEN
+The color green.
+ |
+
static java.awt.Color |
+LIGHT_GRAY
+The color light gray.
+ |
+
static java.awt.Color |
+MAGENTA
+The color magenta.
+ |
+
static java.awt.Color |
+ORANGE
+The color orange.
+ |
+
static java.awt.Color |
+PINK
+The color pink.
+ |
+
static java.awt.Color |
+PRINCETON_ORANGE
+Shade of orange used in Princeton University's identity.
+ |
+
static java.awt.Color |
+RED
+The color red.
+ |
+
static java.awt.Color |
+WHITE
+The color white.
+ |
+
static java.awt.Color |
+YELLOW
+The color yellow.
+ |
+
| Modifier and Type | +Method and Description | +
|---|---|
void |
+actionPerformed(java.awt.event.ActionEvent e)
+This method cannot be called directly.
+ |
+
static void |
+arc(double x,
+ double y,
+ double radius,
+ double angle1,
+ double angle2)
+Draws a circular arc of the specified radius, centered at (x,
+ y), from angle1 to angle2 (in degrees).
+ |
+
static void |
+circle(double x,
+ double y,
+ double radius)
+Draws a circle of the specified radius, centered at (x, y).
+ |
+
static void |
+clear()
+Clears the screen to the default color (white).
+ |
+
static void |
+clear(java.awt.Color color)
+Clears the screen to the specified color.
+ |
+
static void |
+disableDoubleBuffering()
+Disables double buffering.
+ |
+
static void |
+ellipse(double x,
+ double y,
+ double semiMajorAxis,
+ double semiMinorAxis)
+Draws an ellipse with the specified semimajor and semiminor axes, centered at
+ (x, y).
+ |
+
static void |
+enableDoubleBuffering()
+Enables double buffering.
+ |
+
static void |
+filledCircle(double x,
+ double y,
+ double radius)
+Draws a filled circle of the specified radius, centered at (x,
+ y).
+ |
+
static void |
+filledEllipse(double x,
+ double y,
+ double semiMajorAxis,
+ double semiMinorAxis)
+Draws a filled ellipse with the specified semimajor and semiminor axes,
+ centered at (x, y).
+ |
+
static void |
+filledPolygon(double[] x,
+ double[] y)
+Draws a filled polygon with the vertices (x0,
+ y0), (x1, y1),
+ ..., (xn–1, yn–1).
+ |
+
static void |
+filledRectangle(double x,
+ double y,
+ double halfWidth,
+ double halfHeight)
+Draws a filled rectangle of the specified size, centered at (x,
+ y).
+ |
+
static void |
+filledSquare(double x,
+ double y,
+ double halfLength)
+Draws a filled square of the specified size, centered at (x,
+ y).
+ |
+
static java.awt.Font |
+getFont()
+Returns the current font.
+ |
+
static java.awt.Color |
+getPenColor()
+Returns the current pen color.
+ |
+
static double |
+getPenRadius()
+Returns the current pen radius.
+ |
+
static boolean |
+hasNextKeyTyped()
+Returns true if the user has typed a key (that has not yet been processed).
+ |
+
static boolean |
+isKeyPressed(int keycode)
+Returns true if the given key is being pressed.
+ |
+
static boolean |
+isMousePressed()
+Returns true if the mouse is being pressed.
+ |
+
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)
+Draws a line segment between (x0, y0)
+ and (x1, y1).
+ |
+
static void |
+main(java.lang.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()
+Deprecated.
+
+replaced by
+isMousePressed() |
+
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()
+Returns the x-coordinate of the mouse.
+ |
+
static double |
+mouseY()
+Returns the y-coordinate of the mouse.
+ |
+
static char |
+nextKeyTyped()
+Returns the next key that was typed by the user (that your program has not
+ already processed).
+ |
+
static void |
+pause(int t)
+Pauses for t milliseconds.
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename)
+Draws the specified image centered at (x, y).
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename,
+ double degrees)
+Draws the specified image centered at (x, y), rotated given
+ number of degrees.
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename,
+ double scaledWidth,
+ double scaledHeight)
+Draws the specified image centered at (x, y), rescaled to
+ the specified bounding box.
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename,
+ double scaledWidth,
+ double scaledHeight,
+ double degrees)
+Draws the specified image centered at (x, y), rotated given
+ number of degrees, and rescaled to the specified bounding box.
+ |
+
static void |
+point(double x,
+ double y)
+Draws a point centered at (x, y).
+ |
+
static void |
+polygon(double[] x,
+ double[] y)
+Draws a polygon with the vertices (x0,
+ y0), (x1, y1),
+ ..., (xn–1, yn–1).
+ |
+
static void |
+rectangle(double x,
+ double y,
+ double halfWidth,
+ double halfHeight)
+Draws a rectangle of the specified size, centered at (x,
+ y).
+ |
+
static void |
+save(java.lang.String filename)
+Saves the drawing to using the specified filename.
+ |
+
static void |
+setCanvasSize()
+Sets the canvas (drawing area) to be 512-by-512 pixels.
+ |
+
static void |
+setCanvasSize(int canvasWidth,
+ int canvasHeight)
+Sets the canvas (drawing area) to be width-by-height
+ pixels.
+ |
+
static void |
+setFont()
+Sets the font to the default font (sans serif, 16 point).
+ |
+
static void |
+setFont(java.awt.Font font)
+Sets the font to the specified value.
+ |
+
static void |
+setPenColor()
+Sets the pen color to the default color (black).
+ |
+
static void |
+setPenColor(java.awt.Color color)
+Sets the pen color to the specified color.
+ |
+
static void |
+setPenColor(int red,
+ int green,
+ int blue)
+Sets the pen color to the specified RGB color.
+ |
+
static void |
+setPenRadius()
+Sets the pen size to the default size (0.002).
+ |
+
static void |
+setPenRadius(double radius)
+Sets the radius of the pen to the specified size.
+ |
+
static void |
+setScale()
+Sets the x-scale and y-scale to be the default (between 0.0
+ and 1.0).
+ |
+
static void |
+setScale(double min,
+ double max)
+Sets both the x-scale and y-scale to the (same) specified
+ range.
+ |
+
static void |
+setXscale()
+Sets the x-scale to be the default (between 0.0 and 1.0).
+ |
+
static void |
+setXscale(double min,
+ double max)
+Sets the x-scale to the specified range.
+ |
+
static void |
+setYscale()
+Sets the y-scale to be the default (between 0.0 and 1.0).
+ |
+
static void |
+setYscale(double min,
+ double max)
+Sets the y-scale to the specified range.
+ |
+
static void |
+show()
+Copies offscreen buffer to onscreen buffer.
+ |
+
static void |
+show(int t)
+Deprecated.
+
+replaced by
+enableDoubleBuffering(), show(),
+ and pause(int t) |
+
static void |
+square(double x,
+ double y,
+ double halfLength)
+Draws a square of the specified size, centered at (x, y).
+ |
+
static void |
+text(double x,
+ double y,
+ java.lang.String text)
+Writes the given text string in the current font, centered at (x,
+ y).
+ |
+
static void |
+text(double x,
+ double y,
+ java.lang.String text,
+ double degrees)
+Writes the given text string in the current font, centered at (x,
+ y) and rotated by the specified number of degrees.
+ |
+
static void |
+textLeft(double x,
+ double y,
+ java.lang.String text)
+Writes the given text string in the current font, left-aligned at
+ (x, y).
+ |
+
static void |
+textRight(double x,
+ double y,
+ java.lang.String text)
+Writes the given text string in the current font, right-aligned at
+ (x, y).
+ |
+
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic static final java.awt.Color BLACK+
public static final java.awt.Color BLUE+
public static final java.awt.Color CYAN+
public static final java.awt.Color DARK_GRAY+
public static final java.awt.Color GRAY+
public static final java.awt.Color GREEN+
public static final java.awt.Color LIGHT_GRAY+
public static final java.awt.Color MAGENTA+
public static final java.awt.Color ORANGE+
public static final java.awt.Color PINK+
public static final java.awt.Color RED+
public static final java.awt.Color WHITE+
public static final java.awt.Color YELLOW+
public static final java.awt.Color BOOK_BLUE+
public static final java.awt.Color BOOK_LIGHT_BLUE+
public static final java.awt.Color BOOK_RED+
public static final java.awt.Color PRINCETON_ORANGE+
public static void setCanvasSize()+
public static void setCanvasSize(int canvasWidth, + int canvasHeight)+
canvasWidth - the width as a number of pixelscanvasHeight - the height as a number of pixelsjava.lang.IllegalArgumentException - unless both canvasWidth and
+ canvasHeight are positivepublic static void setXscale()+
public static void setYscale()+
public static void setScale()+
public static void setXscale(double min, + double max)+
min - the minimum value of the x-scalemax - the maximum value of the x-scalejava.lang.IllegalArgumentException - if (max == min)java.lang.IllegalArgumentException - if either min or max is
+ either NaN or infinitepublic static void setYscale(double min, + double max)+
min - the minimum value of the y-scalemax - the maximum value of the y-scalejava.lang.IllegalArgumentException - if (max == min)java.lang.IllegalArgumentException - if either min or max is
+ either NaN or infinitepublic static void setScale(double min, + double max)+
min - the minimum value of the x- and y-scalesmax - the maximum value of the x- and y-scalesjava.lang.IllegalArgumentException - if (max == min)java.lang.IllegalArgumentException - if either min or max is
+ either NaN or infinitepublic static void clear()+
public static void clear(java.awt.Color color)+
color - the color to make the backgroundjava.lang.IllegalArgumentException - if color is nullpublic static double getPenRadius()+
public static void setPenRadius()+
public static void setPenRadius(double radius)+
radius - the radius of the penjava.lang.IllegalArgumentException - if radius is negative, NaN, or
+ infinitepublic static java.awt.Color getPenColor()+
public static void setPenColor()+
public static void setPenColor(java.awt.Color color)+
+ The predefined pen colors are StdDraw.BLACK, StdDraw.BLUE,
+ StdDraw.CYAN, StdDraw.DARK_GRAY, StdDraw.GRAY,
+ StdDraw.GREEN, StdDraw.LIGHT_GRAY, StdDraw.MAGENTA,
+ StdDraw.ORANGE, StdDraw.PINK, StdDraw.RED,
+ StdDraw.WHITE, and StdDraw.YELLOW.
color - the color to make the penjava.lang.IllegalArgumentException - if color is nullpublic static void setPenColor(int red, + int green, + int blue)+
red - the amount of red (between 0 and 255)green - the amount of green (between 0 and 255)blue - the amount of blue (between 0 and 255)java.lang.IllegalArgumentException - if red, green, or
+ blue is outside its prescribed rangepublic static java.awt.Font getFont()+
public static void setFont()+
public static void setFont(java.awt.Font font)+
font - the fontjava.lang.IllegalArgumentException - if font is nullpublic static void line(double x0, + double y0, + double x1, + double y1)+
x0 - the x-coordinate of one endpointy0 - the y-coordinate of one endpointx1 - the x-coordinate of the other endpointy1 - the y-coordinate of the other endpointjava.lang.IllegalArgumentException - if any coordinate is either NaN or infinitepublic static void point(double x, + double y)+
x - the x-coordinate of the pointy - the y-coordinate of the pointjava.lang.IllegalArgumentException - if either x or y is either
+ NaN or infinitepublic static void circle(double x, + double y, + double radius)+
x - the x-coordinate of the center of the circley - the y-coordinate of the center of the circleradius - the radius of the circlejava.lang.IllegalArgumentException - if radius is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledCircle(double x, + double y, + double radius)+
x - the x-coordinate of the center of the circley - the y-coordinate of the center of the circleradius - the radius of the circlejava.lang.IllegalArgumentException - if radius is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void ellipse(double x, + double y, + double semiMajorAxis, + double semiMinorAxis)+
x - the x-coordinate of the center of the ellipsey - the y-coordinate of the center of the ellipsesemiMajorAxis - is the semimajor axis of the ellipsesemiMinorAxis - is the semiminor axis of the ellipsejava.lang.IllegalArgumentException - if either semiMajorAxis or
+ semiMinorAxis is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledEllipse(double x, + double y, + double semiMajorAxis, + double semiMinorAxis)+
x - the x-coordinate of the center of the ellipsey - the y-coordinate of the center of the ellipsesemiMajorAxis - is the semimajor axis of the ellipsesemiMinorAxis - is the semiminor axis of the ellipsejava.lang.IllegalArgumentException - if either semiMajorAxis or
+ semiMinorAxis is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void arc(double x, + double y, + double radius, + double angle1, + double angle2)+
x - the x-coordinate of the center of the circley - the y-coordinate of the center of the circleradius - the radius of the circleangle1 - 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.java.lang.IllegalArgumentException - if radius is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void square(double x, + double y, + double halfLength)+
x - the x-coordinate of the center of the squarey - the y-coordinate of the center of the squarehalfLength - one half the length of any side of the squarejava.lang.IllegalArgumentException - if halfLength is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledSquare(double x, + double y, + double halfLength)+
x - the x-coordinate of the center of the squarey - the y-coordinate of the center of the squarehalfLength - one half the length of any side of the squarejava.lang.IllegalArgumentException - if halfLength is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void rectangle(double x, + double y, + double halfWidth, + double halfHeight)+
x - the x-coordinate of the center of the rectangley - the y-coordinate of the center of the rectanglehalfWidth - one half the width of the rectanglehalfHeight - one half the height of the rectanglejava.lang.IllegalArgumentException - if either halfWidth or
+ halfHeight is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledRectangle(double x, + double y, + double halfWidth, + double halfHeight)+
x - the x-coordinate of the center of the rectangley - the y-coordinate of the center of the rectanglehalfWidth - one half the width of the rectanglehalfHeight - one half the height of the rectanglejava.lang.IllegalArgumentException - if either halfWidth or
+ halfHeight is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void polygon(double[] x, + double[] y)+
x - an array of all the x-coordinates of the polygony - an array of all the y-coordinates of the polygonjava.lang.IllegalArgumentException - unless x[] and y[] are of
+ the same lengthjava.lang.IllegalArgumentException - if any coordinate is either NaN or infinitejava.lang.IllegalArgumentException - if either x[] or y[] is
+ nullpublic static void filledPolygon(double[] x, + double[] y)+
x - an array of all the x-coordinates of the polygony - an array of all the y-coordinates of the polygonjava.lang.IllegalArgumentException - unless x[] and y[] are of
+ the same lengthjava.lang.IllegalArgumentException - if any coordinate is either NaN or infinitejava.lang.IllegalArgumentException - if either x[] or y[] is
+ nullpublic static void picture(double x, + double y, + java.lang.String filename)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"java.lang.IllegalArgumentException - if the image filename is invalidjava.lang.IllegalArgumentException - if either x or y is either
+ NaN or infinitepublic static void picture(double x, + double y, + java.lang.String filename, + double degrees)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"degrees - is the number of degrees to rotate counterclockwisejava.lang.IllegalArgumentException - if the image filename is invalidjava.lang.IllegalArgumentException - if x, y, degrees is
+ NaN or infinitejava.lang.IllegalArgumentException - if filename is nullpublic static void picture(double x, + double y, + java.lang.String filename, + double scaledWidth, + double scaledHeight)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"scaledWidth - the width of the scaled image (in screen coordinates)scaledHeight - the height of the scaled image (in screen coordinates)java.lang.IllegalArgumentException - if either scaledWidth or
+ scaledHeight is negativejava.lang.IllegalArgumentException - if the image filename is invalidjava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinitejava.lang.IllegalArgumentException - if filename is nullpublic static void picture(double x, + double y, + java.lang.String filename, + double scaledWidth, + double scaledHeight, + double degrees)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"scaledWidth - the width of the scaled image (in screen coordinates)scaledHeight - the height of the scaled image (in screen coordinates)degrees - is the number of degrees to rotate counterclockwisejava.lang.IllegalArgumentException - if either scaledWidth or
+ scaledHeight is negativejava.lang.IllegalArgumentException - if the image filename is invalidpublic static void text(double x, + double y, + java.lang.String text)+
x - the center x-coordinate of the texty - the center y-coordinate of the texttext - the text to writejava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinitepublic static void text(double x, + double y, + java.lang.String text, + double degrees)+
x - the center x-coordinate of the texty - the center y-coordinate of the texttext - the text to writedegrees - is the number of degrees to rotate counterclockwisejava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x, y, or degrees
+ is either NaN or infinitepublic static void textLeft(double x, + double y, + java.lang.String text)+
x - the x-coordinate of the texty - the y-coordinate of the texttext - the textjava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinitepublic static void textRight(double x, + double y, + java.lang.String text)+
x - the x-coordinate of the texty - the y-coordinate of the texttext - the text to writejava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinite@Deprecated +public static void show(int t)+
enableDoubleBuffering(), show(),
+ and pause(int t)t - number of millisecondspublic static void pause(int t)+
t - number of millisecondspublic static void show()+
public static void enableDoubleBuffering()+
line(), circle(), and square() will be deferred until
+ the next call to show(). Useful for animations.public static void disableDoubleBuffering()+
line(), circle(), and square() will be displayed on
+ screen when called. This is the default.public static void save(java.lang.String filename)+
.jpg or
+ .png.filename - the name of the file with one of the required suffixesjava.lang.IllegalArgumentException - if filename is nullpublic void actionPerformed(java.awt.event.ActionEvent e)+
actionPerformed in interface java.awt.event.ActionListenerpublic static boolean isMousePressed()+
true if the mouse is being pressed; false otherwise@Deprecated +public static boolean mousePressed()+
isMousePressed()true if the mouse is being pressed; false otherwisepublic static double mouseX()+
public static double mouseY()+
public void mouseClicked(java.awt.event.MouseEvent e)+
mouseClicked in interface java.awt.event.MouseListenerpublic void mouseEntered(java.awt.event.MouseEvent e)+
mouseEntered in interface java.awt.event.MouseListenerpublic void mouseExited(java.awt.event.MouseEvent e)+
mouseExited in interface java.awt.event.MouseListenerpublic void mousePressed(java.awt.event.MouseEvent e)+
mousePressed in interface java.awt.event.MouseListenerpublic void mouseReleased(java.awt.event.MouseEvent e)+
mouseReleased in interface java.awt.event.MouseListenerpublic void mouseDragged(java.awt.event.MouseEvent e)+
mouseDragged in interface java.awt.event.MouseMotionListenerpublic void mouseMoved(java.awt.event.MouseEvent e)+
mouseMoved in interface java.awt.event.MouseMotionListenerpublic static boolean hasNextKeyTyped()+
true if the user has typed a key (that has not yet been
+ processed by nextKeyTyped(); false otherwisepublic static char nextKeyTyped()+
hasNextKeyTyped() to ensure that there is a next key to process.
+ This method returns a Unicode character corresponding to the key typed (such
+ as 'a' or 'A'). It cannot identify action keys (such as F1
+ and arrow keys) or modifier keys (such as control).java.util.NoSuchElementException - if there is no remaining keypublic static boolean isKeyPressed(int keycode)+
+ This method takes the keycode (corresponding to a physical key) as an
+ argument. It can handle action keys (such as F1 and arrow keys) and modifier
+ keys (such as shift and control). See KeyEvent for a description of
+ key codes.
keycode - the key to check if it is being pressedtrue if keycode is currently being pressed;
+ false otherwisepublic void keyTyped(java.awt.event.KeyEvent e)+
keyTyped in interface java.awt.event.KeyListenerpublic void keyPressed(java.awt.event.KeyEvent e)+
keyPressed in interface java.awt.event.KeyListenerpublic void keyReleased(java.awt.event.KeyEvent e)+
keyReleased in interface java.awt.event.KeyListenerpublic static void main(java.lang.String[] args)+
args - the command-line argumentspublic class TheArtist
+extends java.lang.Object
+| Modifier and Type | +Method and Description | +
|---|---|
void |
+goldenDraw()
+The Actual Drawing Routing.
+ |
+
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic class TheCanvas
+extends java.lang.Object
+| Modifier and Type | +Method and Description | +
|---|---|
static void |
+main(java.lang.String[] args) |
+
static java.io.File |
+openFile()
+Chooses Image File
+ |
+
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait| Class | +Description | +
|---|---|
| StdDraw | +
+ The
+StdDraw class provides a basic capability for creating drawings
+ with your programs. |
+
| TheArtist | +
+ The class creates and draws the image according to golden ratio.
+ |
+
| TheCanvas | +
+ This Class conatains the file chooser and main function.
+ |
+
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
+StdDraw 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, squares, circles, and other geometric
+ shapes in a window on your computer and to save the drawings to a file.
+ Standard drawing also includes facilities for text, color, pictures, and
+ animation, along with user interaction via the keyboard and mouse.
+
+ Getting started. To use this class, you must have
+ StdDraw.class in your Java classpath. If you used our autoinstaller,
+ you should be all set. Otherwise, either download stdlib.jar and
+ add to your Java classpath or download StdDraw.java
+ and put a copy in your working directory.
+
+ Now, type the following short program into your editor: + +
+ public class TestStdDraw {
+ public static void main(String[] args) {
+ StdDraw.setPenRadius(0.05);
+ StdDraw.setPenColor(StdDraw.BLUE);
+ StdDraw.point(0.5, 0.5);
+ StdDraw.setPenColor(StdDraw.MAGENTA);
+ StdDraw.line(0.2, 0.2, 0.8, 0.2);
+ }
+ }
+
+
+ If you compile and execute the program, you should see a window appear with a
+ thick magenta line and a blue point. This program illustrates the two main
+ types of methods in standard drawing—methods that draw geometric shapes and
+ methods that control drawing parameters. The methods StdDraw.line()
+ and StdDraw.point() draw lines and points; the methods
+ StdDraw.setPenRadius() and StdDraw.setPenColor() control the
+ line thickness and color.
+ + Points and lines. You can draw points and line segments with the + following methods: +
++ The x- and y-coordinates must be in the drawing area + (between 0 and 1 and by default) or the points and lines will not be visible. +
+ Squares, circles, rectangles, and ellipses. You can draw squares, + circles, rectangles, and ellipses using the following methods: +
circle(double x, double y, double radius)
+ ellipse(double x, double y, double semiMajorAxis, double semiMinorAxis)
+ square(double x, double y, double halfLength)
+ rectangle(double x, double y, double halfWidth, double halfHeight)
+ + All of these methods take as arguments the location and size of the shape. + The location is always specified by the x- and + y-coordinates of its center. The size of a circle is + specified by its radius and the size of an ellipse is specified by the + lengths of its semi-major and semi-minor axes. The size of a square or + rectangle is specified by its half-width or half-height. The convention for + drawing squares and rectangles is parallel to those for drawing circles and + ellipses, but may be unexpected to the uninitiated. +
+ The methods above trace outlines of the given shapes. The following methods + draw filled versions: +
filledCircle(double x, double y, double radius)
+ filledEllipse(double x, double y, double semiMajorAxis, double semiMinorAxis)
+ filledSquare(double x, double y, double radius)
+ filledRectangle(double x, double y, double halfWidth, double halfHeight)
+ + Circular arcs. You can draw circular arcs with the following method: +
+
+ The arc is from the circle centered at (x, y) of the
+ specified radius. The arc extends from angle1 to angle2. By convention, the
+ angles are polar (counterclockwise angle from the x-axis)
+ and represented in degrees. For example,
+ StdDraw.arc(0.0, 0.0, 1.0, 0, 90) draws the arc of the unit circle
+ from 3 o'clock (0 degrees) to 12 o'clock (90 degrees).
+
+ Polygons. You can draw polygons with the following methods: +
+
+ The points in the polygon are (x[i], y[i]). For example, the
+ following code fragment draws a filled diamond with vertices (0.1, 0.2),
+ (0.2, 0.3), (0.3, 0.2), and (0.2, 0.1):
+
+
+ double[] x = { 0.1, 0.2, 0.3, 0.2 };
+ double[] y = { 0.2, 0.3, 0.2, 0.1 };
+ StdDraw.filledPolygon(x, y);
+
+ + Pen size. The pen is circular, so that when you set the pen radius to + r and draw a point, you get a circle of radius r. Also, + lines are of thickness 2r and have rounded ends. The default pen + radius is 0.005 and is not affected by coordinate scaling. This default pen + radius is about 1/200 the width of the default canvas, so that if you draw + 100 points equally spaced along a horizontal or vertical line, you will be + able to see individual circles, but if you draw 200 such points, the result + will look like a line. +
+
+ For example, StdDraw.setPenRadius(0.025) makes the thickness of the
+ lines and the size of the points to be five times the 0.005 default. To draw
+ points with the minimum possible radius (one pixel on typical displays), set
+ the pen radius to 0.0.
+
+ Pen color. All geometric shapes (such as points, lines, and circles) + are drawn using the current pen color. By default, it is black. You can + change the pen color with the following methods: +
+
+ The first method allows you to specify colors using the RGB color system.
+ This color picker is a
+ convenient way to find a desired color. The second method allows you to
+ specify colors using the Color data type that is discussed in Chapter
+ 3. Until then, you can use this method with one of these predefined colors in
+ standard drawing: BLACK, BLUE, CYAN,
+ DARK_GRAY, GRAY, GREEN, LIGHT_GRAY,
+ MAGENTA, ORANGE, PINK, RED,
+ WHITE, YELLOW, BOOK_BLUE,
+ BOOK_LIGHT_BLUE, BOOK_RED, and PRINCETON_ORANGE.
+ For example, StdDraw.setPenColor(StdDraw.MAGENTA) sets the pen color
+ to magenta.
+
+ Canvas size. By default, all drawing takes places in a 512-by-512 + canvas. The canvas does not include the window title or window border. You + can change the size of the canvas with the following method: +
+
+ This sets the canvas size to be width-by-height pixels. It
+ also erases the current drawing and resets the coordinate system, pen radius,
+ pen color, and font back to their default values. Ordinarly, this method is
+ called once, at the very beginning of a program. For example,
+ StdDraw.setCanvasSize(800, 800) sets the canvas size to be 800-by-800
+ pixels.
+
+ Canvas scale and coordinate system. By default, all drawing takes + places in the unit square, with (0, 0) at lower left and (1, 1) at upper + right. You can change the default coordinate system with the following + methods: +
setXscale(double xmin, double xmax)
+ setYscale(double ymin, double ymax)
+ setScale(double min, double max)
+
+ The arguments are the coordinates of the minimum and maximum x- or
+ y-coordinates that will appear in the canvas. For example, if you
+ wish to use the default coordinate system but leave a small margin, you can
+ call StdDraw.setScale(-.05, 1.05).
+
+ These methods change the coordinate system for subsequent drawing commands; + they do not affect previous drawings. These methods do not change the canvas + size; so, if the x- and y-scales are different, squares + will become rectangles and circles will become ellipses. +
+ Text. You can use the following methods to annotate your drawings with + text: +
text(double x, double y, String text)
+ text(double x, double y, String text, double degrees)
+ textLeft(double x, double y, String text)
+ textRight(double x, double y, String text)
+ + The first two methods write the specified text in the current font, centered + at (x, y). The second method allows you to rotate the text. + The last two methods either left- or right-align the text at (x, + y). +
+ The default font is a Sans Serif font with point size 16. You can use the + following method to change the font: +
+
+ You use the Font data type to specify the font. This allows you to
+ choose the face, size, and style of the font. For example, the following code
+ fragment sets the font to Arial Bold, 60 point.
+
+
+ Font font = new Font("Arial", Font.BOLD, 60);
+ StdDraw.setFont(font);
+ StdDraw.text(0.5, 0.5, "Hello, World");
+
+ + Images. You can use the following methods to add images to your + drawings: +
picture(double x, double y, String filename)
+ picture(double x, double y, String filename, double degrees)
+ picture(double x, double y, String filename, double scaledWidth, double scaledHeight)
+ picture(double x, double y, String filename, double scaledWidth, double scaledHeight, double degrees)
+ + These methods draw the specified image, centered at (x, y). + The supported image formats are JPEG, PNG, and GIF. The image will display at + its native size, independent of the coordinate system. Optionally, you can + rotate the image a specified number of degrees counterclockwise or rescale it + to fit snugly inside a width-by-height bounding box. +
+ Saving to a file. You save your image to a file using the File → + Save menu option. You can also save a file programatically using the + following method: +
++ The supported image formats are JPEG and PNG. The filename must have either + the extension .jpg or .png. We recommend using PNG for drawing that consist + solely of geometric shapes and JPEG for drawings that contains pictures. +
+ Clearing the canvas. To clear the entire drawing canvas, you can use + the following methods: +
clear()
+ clear(Color color)
+
+ The first method clears the canvas to white; the second method allows you to
+ specify a color of your choice. For example,
+ StdDraw.clear(StdDraw.LIGHT_GRAY) clears the canvas to a shade of
+ gray.
+
+ Computer animations and double buffering. Double buffering is one of + the most powerful features of standard drawing, enabling computer animations. + The following methods control the way in which objects are drawn: +
+
+ By default, double buffering is disabled, which means that as soon as you
+ call a drawing method—such as point() or line()—the results
+ appear on the screen.
+
+ When double buffering is enabled by calling enableDoubleBuffering(),
+ all drawing takes place on the offscreen canvas. The offscreen
+ canvas is not displayed. Only when you call show() does your drawing
+ get copied from the offscreen canvas to the onscreen canvas, where it is
+ displayed in the standard drawing window. You can think of double buffering
+ as collecting all of the lines, points, shapes, and text that you tell it to
+ draw, and then drawing them all simultaneously, upon request.
+
+ The most important use of double buffering is to produce computer animations, + creating the illusion of motion by rapidly displaying static drawings. To + produce an animation, repeat the following four steps: +
+ The clear(), show(), and pause(int t) methods
+ support the first, third, and fourth of these steps, respectively.
+
+ For example, this code fragment animates two balls moving in a circle. + +
+ StdDraw.setScale(-2, +2);
+ StdDraw.enableDoubleBuffering();
+
+ for (double t = 0.0; true; t += 0.02) {
+ double x = Math.sin(t);
+ double y = Math.cos(t);
+ StdDraw.clear();
+ StdDraw.filledCircle(x, y, 0.05);
+ StdDraw.filledCircle(-x, -y, 0.05);
+ StdDraw.show();
+ StdDraw.pause(20);
+ }
+
+ + Keyboard and mouse inputs. Standard drawing has very basic support for + keyboard and mouse input. It is much less powerful than most user interface + libraries provide, but also much simpler. You can use the following methods + to intercept mouse events: +
isMousePressed()
+ mouseX()
+ mouseY()
+ + The first method tells you whether a mouse button is currently being pressed. + The last two methods tells you the x- and y-coordinates of + the mouse's current position, using the same coordinate system as the canvas + (the unit square, by default). You should use these methods in an animation + loop that waits a short while before trying to poll the mouse for its current + state. You can use the following methods to intercept keyboard events: +
++ If the user types lots of keys, they will be saved in a list until you + process them. The first method tells you whether the user has typed a key + (that your program has not yet processed). The second method returns the next + key that the user typed (that your program has not yet processed) and removes + it from the list of saved keystrokes. The third method tells you whether a + key is currently being pressed. +
+ Accessing control parameters. You can use the following methods to + access the current pen color, pen radius, and font: +
getPenColor()
+ getPenRadius()
+ getFont()
+ + These methods are useful when you want to temporarily change a control + parameter and reset it back to its original value. +
+ Corner cases. Here are some corner cases. +
null argument will throw an
+ IllegalArgumentException.
+ Double.NaN,
+ Double.POSITIVE_INFINITY, or Double.NEGATIVE_INFINITY
+ argument will throw an IllegalArgumentException.
+ + Performance tricks. Standard drawing is capable of drawing large + amounts of data. Here are a few tricks and tips: +
enableDoubleBuffering() before the sequence
+ of drawing commands and call show() afterwards. Incrementally
+ displaying a complex drawing while it is being created can be intolerably
+ inefficient on many computer systems.
+ show() only once per
+ frame, not after drawing each individual object.
+ picture() multiple times with the same filename, Java
+ will cache the image, so you do not incur the cost of reading from a file
+ each time.
+ + Known bugs and issues. +
picture() methods may not draw the portion of the image that
+ is inside the canvas if the center point (x, y) is outside
+ the canvas. This bug appears only on some systems.
+ + Reference. For additional documentation, see + Section 1.5 of + Computer Science: An Interdisciplinary Approach by Robert Sedgewick + and Kevin Wayne.
| Modifier and Type | +Field and Description | +
|---|---|
static java.awt.Color |
+BLACK
+The color black.
+ |
+
static java.awt.Color |
+BLUE
+The color blue.
+ |
+
static java.awt.Color |
+BOOK_BLUE
+Shade of blue used in Introduction to Programming in Java.
+ |
+
static java.awt.Color |
+BOOK_LIGHT_BLUE
+Shade of light blue used in Introduction to Programming in Java.
+ |
+
static java.awt.Color |
+BOOK_RED
+Shade of red used in Algorithms, 4th edition.
+ |
+
static java.awt.Color |
+CYAN
+The color cyan.
+ |
+
static java.awt.Color |
+DARK_GRAY
+The color dark gray.
+ |
+
static java.awt.Color |
+GRAY
+The color gray.
+ |
+
static java.awt.Color |
+GREEN
+The color green.
+ |
+
static java.awt.Color |
+LIGHT_GRAY
+The color light gray.
+ |
+
static java.awt.Color |
+MAGENTA
+The color magenta.
+ |
+
static java.awt.Color |
+ORANGE
+The color orange.
+ |
+
static java.awt.Color |
+PINK
+The color pink.
+ |
+
static java.awt.Color |
+PRINCETON_ORANGE
+Shade of orange used in Princeton University's identity.
+ |
+
static java.awt.Color |
+RED
+The color red.
+ |
+
static java.awt.Color |
+WHITE
+The color white.
+ |
+
static java.awt.Color |
+YELLOW
+The color yellow.
+ |
+
| Modifier and Type | +Method and Description | +
|---|---|
void |
+actionPerformed(java.awt.event.ActionEvent e)
+This method cannot be called directly.
+ |
+
static void |
+arc(double x,
+ double y,
+ double radius,
+ double angle1,
+ double angle2)
+Draws a circular arc of the specified radius, centered at (x,
+ y), from angle1 to angle2 (in degrees).
+ |
+
static void |
+circle(double x,
+ double y,
+ double radius)
+Draws a circle of the specified radius, centered at (x, y).
+ |
+
static void |
+clear()
+Clears the screen to the default color (white).
+ |
+
static void |
+clear(java.awt.Color color)
+Clears the screen to the specified color.
+ |
+
static void |
+disableDoubleBuffering()
+Disables double buffering.
+ |
+
static void |
+ellipse(double x,
+ double y,
+ double semiMajorAxis,
+ double semiMinorAxis)
+Draws an ellipse with the specified semimajor and semiminor axes, centered at
+ (x, y).
+ |
+
static void |
+enableDoubleBuffering()
+Enables double buffering.
+ |
+
static void |
+filledCircle(double x,
+ double y,
+ double radius)
+Draws a filled circle of the specified radius, centered at (x,
+ y).
+ |
+
static void |
+filledEllipse(double x,
+ double y,
+ double semiMajorAxis,
+ double semiMinorAxis)
+Draws a filled ellipse with the specified semimajor and semiminor axes,
+ centered at (x, y).
+ |
+
static void |
+filledPolygon(double[] x,
+ double[] y)
+Draws a filled polygon with the vertices (x0,
+ y0), (x1, y1),
+ ..., (xn–1, yn–1).
+ |
+
static void |
+filledRectangle(double x,
+ double y,
+ double halfWidth,
+ double halfHeight)
+Draws a filled rectangle of the specified size, centered at (x,
+ y).
+ |
+
static void |
+filledSquare(double x,
+ double y,
+ double halfLength)
+Draws a filled square of the specified size, centered at (x,
+ y).
+ |
+
static java.awt.Font |
+getFont()
+Returns the current font.
+ |
+
static java.awt.Color |
+getPenColor()
+Returns the current pen color.
+ |
+
static double |
+getPenRadius()
+Returns the current pen radius.
+ |
+
static boolean |
+hasNextKeyTyped()
+Returns true if the user has typed a key (that has not yet been processed).
+ |
+
static boolean |
+isKeyPressed(int keycode)
+Returns true if the given key is being pressed.
+ |
+
static boolean |
+isMousePressed()
+Returns true if the mouse is being pressed.
+ |
+
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)
+Draws a line segment between (x0, y0)
+ and (x1, y1).
+ |
+
static void |
+main(java.lang.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()
+Deprecated.
+
+replaced by
+isMousePressed() |
+
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()
+Returns the x-coordinate of the mouse.
+ |
+
static double |
+mouseY()
+Returns the y-coordinate of the mouse.
+ |
+
static char |
+nextKeyTyped()
+Returns the next key that was typed by the user (that your program has not
+ already processed).
+ |
+
static void |
+pause(int t)
+Pauses for t milliseconds.
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename)
+Draws the specified image centered at (x, y).
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename,
+ double degrees)
+Draws the specified image centered at (x, y), rotated given
+ number of degrees.
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename,
+ double scaledWidth,
+ double scaledHeight)
+Draws the specified image centered at (x, y), rescaled to
+ the specified bounding box.
+ |
+
static void |
+picture(double x,
+ double y,
+ java.lang.String filename,
+ double scaledWidth,
+ double scaledHeight,
+ double degrees)
+Draws the specified image centered at (x, y), rotated given
+ number of degrees, and rescaled to the specified bounding box.
+ |
+
static void |
+point(double x,
+ double y)
+Draws a point centered at (x, y).
+ |
+
static void |
+polygon(double[] x,
+ double[] y)
+Draws a polygon with the vertices (x0,
+ y0), (x1, y1),
+ ..., (xn–1, yn–1).
+ |
+
static void |
+rectangle(double x,
+ double y,
+ double halfWidth,
+ double halfHeight)
+Draws a rectangle of the specified size, centered at (x,
+ y).
+ |
+
static void |
+save(java.lang.String filename)
+Saves the drawing to using the specified filename.
+ |
+
static void |
+setCanvasSize()
+Sets the canvas (drawing area) to be 512-by-512 pixels.
+ |
+
static void |
+setCanvasSize(int canvasWidth,
+ int canvasHeight)
+Sets the canvas (drawing area) to be width-by-height
+ pixels.
+ |
+
static void |
+setFont()
+Sets the font to the default font (sans serif, 16 point).
+ |
+
static void |
+setFont(java.awt.Font font)
+Sets the font to the specified value.
+ |
+
static void |
+setPenColor()
+Sets the pen color to the default color (black).
+ |
+
static void |
+setPenColor(java.awt.Color color)
+Sets the pen color to the specified color.
+ |
+
static void |
+setPenColor(int red,
+ int green,
+ int blue)
+Sets the pen color to the specified RGB color.
+ |
+
static void |
+setPenRadius()
+Sets the pen size to the default size (0.002).
+ |
+
static void |
+setPenRadius(double radius)
+Sets the radius of the pen to the specified size.
+ |
+
static void |
+setScale()
+Sets the x-scale and y-scale to be the default (between 0.0
+ and 1.0).
+ |
+
static void |
+setScale(double min,
+ double max)
+Sets both the x-scale and y-scale to the (same) specified
+ range.
+ |
+
static void |
+setXscale()
+Sets the x-scale to be the default (between 0.0 and 1.0).
+ |
+
static void |
+setXscale(double min,
+ double max)
+Sets the x-scale to the specified range.
+ |
+
static void |
+setYscale()
+Sets the y-scale to be the default (between 0.0 and 1.0).
+ |
+
static void |
+setYscale(double min,
+ double max)
+Sets the y-scale to the specified range.
+ |
+
static void |
+show()
+Copies offscreen buffer to onscreen buffer.
+ |
+
static void |
+show(int t)
+Deprecated.
+
+replaced by
+enableDoubleBuffering(), show(),
+ and pause(int t) |
+
static void |
+square(double x,
+ double y,
+ double halfLength)
+Draws a square of the specified size, centered at (x, y).
+ |
+
static void |
+text(double x,
+ double y,
+ java.lang.String text)
+Writes the given text string in the current font, centered at (x,
+ y).
+ |
+
static void |
+text(double x,
+ double y,
+ java.lang.String text,
+ double degrees)
+Writes the given text string in the current font, centered at (x,
+ y) and rotated by the specified number of degrees.
+ |
+
static void |
+textLeft(double x,
+ double y,
+ java.lang.String text)
+Writes the given text string in the current font, left-aligned at
+ (x, y).
+ |
+
static void |
+textRight(double x,
+ double y,
+ java.lang.String text)
+Writes the given text string in the current font, right-aligned at
+ (x, y).
+ |
+
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic static final java.awt.Color BLACK+
public static final java.awt.Color BLUE+
public static final java.awt.Color CYAN+
public static final java.awt.Color DARK_GRAY+
public static final java.awt.Color GRAY+
public static final java.awt.Color GREEN+
public static final java.awt.Color LIGHT_GRAY+
public static final java.awt.Color MAGENTA+
public static final java.awt.Color ORANGE+
public static final java.awt.Color PINK+
public static final java.awt.Color RED+
public static final java.awt.Color WHITE+
public static final java.awt.Color YELLOW+
public static final java.awt.Color BOOK_BLUE+
public static final java.awt.Color BOOK_LIGHT_BLUE+
public static final java.awt.Color BOOK_RED+
public static final java.awt.Color PRINCETON_ORANGE+
public static void setCanvasSize()+
public static void setCanvasSize(int canvasWidth, + int canvasHeight)+
canvasWidth - the width as a number of pixelscanvasHeight - the height as a number of pixelsjava.lang.IllegalArgumentException - unless both canvasWidth and
+ canvasHeight are positivepublic static void setXscale()+
public static void setYscale()+
public static void setScale()+
public static void setXscale(double min, + double max)+
min - the minimum value of the x-scalemax - the maximum value of the x-scalejava.lang.IllegalArgumentException - if (max == min)java.lang.IllegalArgumentException - if either min or max is
+ either NaN or infinitepublic static void setYscale(double min, + double max)+
min - the minimum value of the y-scalemax - the maximum value of the y-scalejava.lang.IllegalArgumentException - if (max == min)java.lang.IllegalArgumentException - if either min or max is
+ either NaN or infinitepublic static void setScale(double min, + double max)+
min - the minimum value of the x- and y-scalesmax - the maximum value of the x- and y-scalesjava.lang.IllegalArgumentException - if (max == min)java.lang.IllegalArgumentException - if either min or max is
+ either NaN or infinitepublic static void clear()+
public static void clear(java.awt.Color color)+
color - the color to make the backgroundjava.lang.IllegalArgumentException - if color is nullpublic static double getPenRadius()+
public static void setPenRadius()+
public static void setPenRadius(double radius)+
radius - the radius of the penjava.lang.IllegalArgumentException - if radius is negative, NaN, or
+ infinitepublic static java.awt.Color getPenColor()+
public static void setPenColor()+
public static void setPenColor(java.awt.Color color)+
+ The predefined pen colors are StdDraw.BLACK, StdDraw.BLUE,
+ StdDraw.CYAN, StdDraw.DARK_GRAY, StdDraw.GRAY,
+ StdDraw.GREEN, StdDraw.LIGHT_GRAY, StdDraw.MAGENTA,
+ StdDraw.ORANGE, StdDraw.PINK, StdDraw.RED,
+ StdDraw.WHITE, and StdDraw.YELLOW.
color - the color to make the penjava.lang.IllegalArgumentException - if color is nullpublic static void setPenColor(int red, + int green, + int blue)+
red - the amount of red (between 0 and 255)green - the amount of green (between 0 and 255)blue - the amount of blue (between 0 and 255)java.lang.IllegalArgumentException - if red, green, or
+ blue is outside its prescribed rangepublic static java.awt.Font getFont()+
public static void setFont()+
public static void setFont(java.awt.Font font)+
font - the fontjava.lang.IllegalArgumentException - if font is nullpublic static void line(double x0, + double y0, + double x1, + double y1)+
x0 - the x-coordinate of one endpointy0 - the y-coordinate of one endpointx1 - the x-coordinate of the other endpointy1 - the y-coordinate of the other endpointjava.lang.IllegalArgumentException - if any coordinate is either NaN or infinitepublic static void point(double x, + double y)+
x - the x-coordinate of the pointy - the y-coordinate of the pointjava.lang.IllegalArgumentException - if either x or y is either
+ NaN or infinitepublic static void circle(double x, + double y, + double radius)+
x - the x-coordinate of the center of the circley - the y-coordinate of the center of the circleradius - the radius of the circlejava.lang.IllegalArgumentException - if radius is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledCircle(double x, + double y, + double radius)+
x - the x-coordinate of the center of the circley - the y-coordinate of the center of the circleradius - the radius of the circlejava.lang.IllegalArgumentException - if radius is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void ellipse(double x, + double y, + double semiMajorAxis, + double semiMinorAxis)+
x - the x-coordinate of the center of the ellipsey - the y-coordinate of the center of the ellipsesemiMajorAxis - is the semimajor axis of the ellipsesemiMinorAxis - is the semiminor axis of the ellipsejava.lang.IllegalArgumentException - if either semiMajorAxis or
+ semiMinorAxis is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledEllipse(double x, + double y, + double semiMajorAxis, + double semiMinorAxis)+
x - the x-coordinate of the center of the ellipsey - the y-coordinate of the center of the ellipsesemiMajorAxis - is the semimajor axis of the ellipsesemiMinorAxis - is the semiminor axis of the ellipsejava.lang.IllegalArgumentException - if either semiMajorAxis or
+ semiMinorAxis is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void arc(double x, + double y, + double radius, + double angle1, + double angle2)+
x - the x-coordinate of the center of the circley - the y-coordinate of the center of the circleradius - the radius of the circleangle1 - 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.java.lang.IllegalArgumentException - if radius is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void square(double x, + double y, + double halfLength)+
x - the x-coordinate of the center of the squarey - the y-coordinate of the center of the squarehalfLength - one half the length of any side of the squarejava.lang.IllegalArgumentException - if halfLength is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledSquare(double x, + double y, + double halfLength)+
x - the x-coordinate of the center of the squarey - the y-coordinate of the center of the squarehalfLength - one half the length of any side of the squarejava.lang.IllegalArgumentException - if halfLength is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void rectangle(double x, + double y, + double halfWidth, + double halfHeight)+
x - the x-coordinate of the center of the rectangley - the y-coordinate of the center of the rectanglehalfWidth - one half the width of the rectanglehalfHeight - one half the height of the rectanglejava.lang.IllegalArgumentException - if either halfWidth or
+ halfHeight is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void filledRectangle(double x, + double y, + double halfWidth, + double halfHeight)+
x - the x-coordinate of the center of the rectangley - the y-coordinate of the center of the rectanglehalfWidth - one half the width of the rectanglehalfHeight - one half the height of the rectanglejava.lang.IllegalArgumentException - if either halfWidth or
+ halfHeight is negativejava.lang.IllegalArgumentException - if any argument is either NaN or infinitepublic static void polygon(double[] x, + double[] y)+
x - an array of all the x-coordinates of the polygony - an array of all the y-coordinates of the polygonjava.lang.IllegalArgumentException - unless x[] and y[] are of
+ the same lengthjava.lang.IllegalArgumentException - if any coordinate is either NaN or infinitejava.lang.IllegalArgumentException - if either x[] or y[] is
+ nullpublic static void filledPolygon(double[] x, + double[] y)+
x - an array of all the x-coordinates of the polygony - an array of all the y-coordinates of the polygonjava.lang.IllegalArgumentException - unless x[] and y[] are of
+ the same lengthjava.lang.IllegalArgumentException - if any coordinate is either NaN or infinitejava.lang.IllegalArgumentException - if either x[] or y[] is
+ nullpublic static void picture(double x, + double y, + java.lang.String filename)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"java.lang.IllegalArgumentException - if the image filename is invalidjava.lang.IllegalArgumentException - if either x or y is either
+ NaN or infinitepublic static void picture(double x, + double y, + java.lang.String filename, + double degrees)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"degrees - is the number of degrees to rotate counterclockwisejava.lang.IllegalArgumentException - if the image filename is invalidjava.lang.IllegalArgumentException - if x, y, degrees is
+ NaN or infinitejava.lang.IllegalArgumentException - if filename is nullpublic static void picture(double x, + double y, + java.lang.String filename, + double scaledWidth, + double scaledHeight)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"scaledWidth - the width of the scaled image (in screen coordinates)scaledHeight - the height of the scaled image (in screen coordinates)java.lang.IllegalArgumentException - if either scaledWidth or
+ scaledHeight is negativejava.lang.IllegalArgumentException - if the image filename is invalidjava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinitejava.lang.IllegalArgumentException - if filename is nullpublic static void picture(double x, + double y, + java.lang.String filename, + double scaledWidth, + double scaledHeight, + double degrees)+
x - the center x-coordinate of the imagey - the center y-coordinate of the imagefilename - the name of the image/picture, e.g., "ball.gif"scaledWidth - the width of the scaled image (in screen coordinates)scaledHeight - the height of the scaled image (in screen coordinates)degrees - is the number of degrees to rotate counterclockwisejava.lang.IllegalArgumentException - if either scaledWidth or
+ scaledHeight is negativejava.lang.IllegalArgumentException - if the image filename is invalidpublic static void text(double x, + double y, + java.lang.String text)+
x - the center x-coordinate of the texty - the center y-coordinate of the texttext - the text to writejava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinitepublic static void text(double x, + double y, + java.lang.String text, + double degrees)+
x - the center x-coordinate of the texty - the center y-coordinate of the texttext - the text to writedegrees - is the number of degrees to rotate counterclockwisejava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x, y, or degrees
+ is either NaN or infinitepublic static void textLeft(double x, + double y, + java.lang.String text)+
x - the x-coordinate of the texty - the y-coordinate of the texttext - the textjava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinitepublic static void textRight(double x, + double y, + java.lang.String text)+
x - the x-coordinate of the texty - the y-coordinate of the texttext - the text to writejava.lang.IllegalArgumentException - if text is nulljava.lang.IllegalArgumentException - if x or y is either NaN or
+ infinite@Deprecated +public static void show(int t)+
enableDoubleBuffering(), show(),
+ and pause(int t)t - number of millisecondspublic static void pause(int t)+
t - number of millisecondspublic static void show()+
public static void enableDoubleBuffering()+
line(), circle(), and square() will be deferred until
+ the next call to show(). Useful for animations.public static void disableDoubleBuffering()+
line(), circle(), and square() will be displayed on
+ screen when called. This is the default.public static void save(java.lang.String filename)+
.jpg or
+ .png.filename - the name of the file with one of the required suffixesjava.lang.IllegalArgumentException - if filename is nullpublic void actionPerformed(java.awt.event.ActionEvent e)+
actionPerformed in interface java.awt.event.ActionListenerpublic static boolean isMousePressed()+
true if the mouse is being pressed; false otherwise@Deprecated +public static boolean mousePressed()+
isMousePressed()true if the mouse is being pressed; false otherwisepublic static double mouseX()+
public static double mouseY()+
public void mouseClicked(java.awt.event.MouseEvent e)+
mouseClicked in interface java.awt.event.MouseListenerpublic void mouseEntered(java.awt.event.MouseEvent e)+
mouseEntered in interface java.awt.event.MouseListenerpublic void mouseExited(java.awt.event.MouseEvent e)+
mouseExited in interface java.awt.event.MouseListenerpublic void mousePressed(java.awt.event.MouseEvent e)+
mousePressed in interface java.awt.event.MouseListenerpublic void mouseReleased(java.awt.event.MouseEvent e)+
mouseReleased in interface java.awt.event.MouseListenerpublic void mouseDragged(java.awt.event.MouseEvent e)+
mouseDragged in interface java.awt.event.MouseMotionListenerpublic void mouseMoved(java.awt.event.MouseEvent e)+
mouseMoved in interface java.awt.event.MouseMotionListenerpublic static boolean hasNextKeyTyped()+
true if the user has typed a key (that has not yet been
+ processed by nextKeyTyped(); false otherwisepublic static char nextKeyTyped()+
hasNextKeyTyped() to ensure that there is a next key to process.
+ This method returns a Unicode character corresponding to the key typed (such
+ as 'a' or 'A'). It cannot identify action keys (such as F1
+ and arrow keys) or modifier keys (such as control).java.util.NoSuchElementException - if there is no remaining keypublic static boolean isKeyPressed(int keycode)+
+ This method takes the keycode (corresponding to a physical key) as an
+ argument. It can handle action keys (such as F1 and arrow keys) and modifier
+ keys (such as shift and control). See KeyEvent for a description of
+ key codes.
keycode - the key to check if it is being pressedtrue if keycode is currently being pressed;
+ false otherwisepublic void keyTyped(java.awt.event.KeyEvent e)+
keyTyped in interface java.awt.event.KeyListenerpublic void keyPressed(java.awt.event.KeyEvent e)+
keyPressed in interface java.awt.event.KeyListenerpublic void keyReleased(java.awt.event.KeyEvent e)+
keyReleased in interface java.awt.event.KeyListenerpublic static void main(java.lang.String[] args)+
args - the command-line argumentspublic class TheArtist
+extends java.lang.Object
+| Modifier and Type | +Method and Description | +
|---|---|
void |
+goldenDraw()
+The Actual Drawing Routing.
+ |
+
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic class TheCanvas
+extends java.lang.Object
+| Modifier and Type | +Method and Description | +
|---|---|
static void |
+main(java.lang.String[] args) |
+
static java.io.File |
+openFile()
+Chooses Image File
+ |
+
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait| Class | +Description | +
|---|---|
| StdDraw | +
+ The
+StdDraw class provides a basic capability for creating drawings
+ with your programs. |
+
| TheArtist | +
+ The class creates and draws the image according to golden ratio.
+ |
+
| TheCanvas | +
+ This Class conatains the file chooser and main function.
+ |
+