Presentation is loading. Please wait.

Presentation is loading. Please wait.

Week 8 - Monday.  What did we talk about last time?  StdAudio.

Similar presentations


Presentation on theme: "Week 8 - Monday.  What did we talk about last time?  StdAudio."— Presentation transcript:

1 Week 8 - Monday

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

3

4

5

6  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

8  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,0) (0,1)(1,1) (1,0)

9  The following methods can be used to draw lines and points MethodUse 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  Let’s draw a box then divide it into two halves, like so:

11

12  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  Here are some methods for drawing circles and squares and setting the color for doing so: MethodUse 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  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 BLACKBLUECYANDARK_GRAYGRAY GREENLIGHT_GRAYMAGENTAORANGEPINK REDWHITEYELLOW

15  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  We just want to make a pattern of black and white squares on the screen  Hint: We need two loops

17

18  A number of methods are given to give us more control over the display MethodUse 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 show(int delay) Delay for delay ms

19  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  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  The show() 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

23  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 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 1. Ask the user for the coefficients of the four terms (ax 3 + bx 2 + cx + d) 2. Ask the user for an x range 3. Run through the function and find the minimum and maximum y values hit 4. Rescale the drawing area to show everything 5. Plot the function

26

27  Static methods

28  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.  What did we talk about last time?  StdAudio."

Similar presentations


Ads by Google