Presentation is loading. Please wait.

Presentation is loading. Please wait.

Week 8 - Monday CS 121.

Similar presentations


Presentation on theme: "Week 8 - Monday CS 121."— Presentation transcript:

1 Week 8 - Monday CS 121

2 Last time What did we talk about last time? StdAudio

3 Questions?

4 Project 3

5 StdDraw

6 StdDraw StdDraw is a library of Java code developed by Robert Sedgewick and Kevin Wayne StdDraw allows you to draw output on the screen easily You can draw points, lines, and polygons in various colors You can clear and resize the drawing area and even save the results StdDraw is not standard Java that everyone uses, but it’s a nice tool for graphics

7 Lines and Points

8 Lines and points (0,1) (1,1) (0,0) (1,0)
The simplest things you can draw with StdDraw are lines and points The first thing you should be aware of is that the canvas is drawn like Quadrant I of a Cartesian plane (0,1) (1,1) (0,0) (1,0)

9 Line and point methods The following methods can be used to draw lines and points Method Use void line(double x0, double y0, double x1, double y1) Draw a line from (x0,y0) to (x1,y1) void point(double x, double y) Draw a point at (x,y)

10 Line example Let’s draw a box then divide it into two halves, like so:

11 Circles and Polygons

12 Who wants to take all that time to make a square?
There are built in commands for drawing: Circles Squares Arbitrary polygons Filled versions of each one of these We won’t bother with the arbitrary polygons It is also possible to set the color

13 Shape methods Here are some methods for drawing circles and squares and setting the color for doing so: Method Use void circle(double x, double y, double r) Draw a circle centered at (x,y) with radius r void filledCircle(double x, double y, double r) Draw a filled circle centered at (x,y) with radius r void square(double x, double y, double r) Draw a square centered at (x,y) with edges 2r void filledSquare(double x, double y, double r) Draw a filled square centered at (x,y) with edges 2r void setPenColor(Color c) Start drawing with color c

14 Colors Eventually you will be able to define your own colors
For now you are limited to 13 presets For example, to make something magenta, you would use the value StdDraw.MAGENTA BLACK BLUE CYAN DARK_GRAY GRAY GREEN LIGHT_GRAY MAGENTA ORANGE PINK RED WHITE YELLOW

15 Screen saver? Let’s write some code for making 100 circles at random locations with random sizes and random colors Location is easy Size is easy, we just decide on the range of sizes we want and do some math Color is more painful We need a switch statement with 13 choices

16 What about a chessboard?
We just want to make a pattern of black and white squares on the screen Hint: We need two loops

17 Controlling the Draw Area

18 Controls A number of methods are given to give us more control over the display Method Use void setXscale(double x0, double x1) Set the x scale void setYscale(double y0, double y1) Set the y scale void setPenRadius(double r) Set the pen radius void setCanvasSize(int w, int h) Set canvas size void clear() Clear canvas to white void clear(Color c) Clear canvas to color c void pause(int delay) Delay for delay ms

19 Scales As you have seen, the default scale of the canvas is in the range [0,1] for both x and y We can use the setXscale() method to set the minimum and maximum x values We can use the setYscale() method to set the minimum and maximum y values Useful for plotting functions

20 Canvas size Note that changing the scale doesn’t change the size of the window, just what is shown in it If you want to change the size of the window, use the setCanvasSize() method to set the width and the height of the canvas in terms of screen pixels

21 What is this pause() thing?
The pause() method lets you specify a delay in milliseconds before things are drawn on the screen You can use it to slow down or speed up animations

22 Applications

23 Cannon simulator Can we simulate a cannon being fired?
Let the user enter an initial velocity in m/s Let the user an angle between 0° and 90° Assume each iteration takes 1/10 of a second Assume an initial height of 20 m We draw the path of the cannon ball as it flies through the air Let’s also set the x and y scales to both be [0,100]

24 Plotting functions Plotting functions is really useful
Getting smooth curves is hard Instead, we just pick a whole bunch of x points and figure out the function value We can just draw dots to plot those values We can connect them with lines for a more connected look Let’s write some code to draw cubic polynomials

25 Function plotting algorithm
Ask the user for the coefficients of the four terms (ax3 + bx2 + cx + d) Ask the user for an x range Run through the function and find the minimum and maximum y values hit Rescale the drawing area to show everything Plot the function

26 Upcoming

27 Next time… Static methods

28 Reminders Read Chapter 8 of the textbook
Get an early start on Project 3 It's harder than the previous two!


Download ppt "Week 8 - Monday CS 121."

Similar presentations


Ads by Google