Unit 3 parameters and graphics Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except where otherwise.

Slides:



Advertisements
Similar presentations
Copyright 2010 by Pearson Education Building Java Programs More Graphics reading: Supplement 3G.
Advertisements

Copyright 2006 by Pearson Education 1 Building Java Programs Supplement 3G: Graphics.
Laboratory Study II October, Java Programming Assignment  Write a program to calculate and output the distance traveled by a car on a tank of.
Graphics Chapter 16.  If you want to draw shapes such as a bar chart, a clock, or a stop sign, how do you do it?
PHY-102 SAPIntroductory GraphicsSlide 1 Introductory Graphics In this section we will learn how about how to draw graphics on the screen in Java:  Drawing.
LAB SESSION 7 Graphical user interface Applet fundamentals Methods in applets Execution of an applet Graphics class.
Topic 9 more graphics Based on slides bu Marty Stepp and Stuart Reges from
Building Java Programs Supplement 3G Graphics Copyright (c) Pearson All rights reserved.
Building Java Programs Supplement 3G Graphics Copyright (c) Pearson All rights reserved.
Week 5 while loops; logic; random numbers; tuples Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except.
Copyright 2008 by Pearson Education Building Java Programs Graphics Reading: Supplement 3G.
Copyright 2006 by Pearson Education 1 Building Java Programs Supplement 3G: Graphics.
Week 3 parameters, return, math, graphics Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise.
Week 3 parameters and graphics Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted,
Copyright 2008 by Pearson Education Building Java Programs Graphics reading: Supplement 3G videos: Ch. 3G #1-2.
Week 3 parameters, return, math, graphics Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise.
Copyright 2008 by Pearson Education Building Java Programs Graphics reading: Supplement 3G videos: Ch. 3G #1-2.
Week 2 expressions, variables, for loops Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck, Hélène Martin, Kim Todd, John Kurkowski, and Marty.
Copyright 2006 by Pearson Education 1 Building Java Programs Supplement 3G: Graphics.
Week 6 review; file processing Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted,
Week 6 review; file processing Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted,
1 Graphical objects We will draw graphics in Java using 3 kinds of objects: DrawingPanel : A window on the screen. Not part of Java; provided by the authors.
Unit 5 while loops; logic; random numbers; tuples Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work.
Copyright 2010 by Pearson Education Building Java Programs Graphics reading: Supplement 3G.
Unit 2 Expressions and variables; for loops Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except.
1 Building Java Programs Supplement 3G: Graphics These lecture notes are copyright (C) Marty Stepp and Stuart Reges, They may not be rehosted, sold,
Week 3 parameters and graphics Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted,
Week 1 basic Python programs, defining functions Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where.
Unit 1 Basic Python programs, functions Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except.
Week 2 expressions, variables, for loops Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise.
Week 2 expressions, variables, for loops Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck, Hélène Martin, Kim Todd, John Kurkowski, and Marty.
Exploration Seminar 4 Basics Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck and Roy McElmurry for their work on these slides. Except where otherwise.
Building Java Programs Supplement 3G Graphics Copyright (c) Pearson All rights reserved.
Parameters, return, math, graphics nobody expects the spanish inquisition!
Building Java Programs Graphics Reading: Supplement 3G.
CS305j Introduction to Computing Simple Graphics 1 Topic 11 Simple Graphics "What makes the situation worse is that the highest level CS course I've ever.
Introduction to Graphics. Graphical objects To draw pictures, we will use three classes of objects: –DrawingPanel : A window on the screen. –Graphics.
Copyright 2008 by Pearson Education Building Java Programs Graphics reading: Supplement 3G videos: Ch. 3G #1-2.
10/16/07.
Adapted from slides by Marty Stepp and Stuart Reges
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
A note on Programming Assignment
Building Java Programs
CSc 110, Spring 2017 Lecture 6: Parameters (cont.) and Graphics
parameters, return, math, graphics
Topic 8 graphics "What makes the situation worse is that the highest level CS course I've ever taken is cs4, and quotes from the graphics group startup.
Building Java Programs
CSc 110, Spring 2018 Lecture 9: Parameters, Graphics and Random
1/22/2008.
Building Java Programs
CSc 110, Autumn 2017 Lecture 9: Graphics and Nested Loops
expressions, variables, for loops
expressions, variables, for loops
CSE 142 Lecture Notes Graphics with DrawingPanel Chapter 3
Building Java Programs
CSc 110, Spring 2018 Lecture 10: More Graphics
Building Java Programs
Building Java Programs
CSc 110, Autumn 2017 Lecture 8: More Graphics
Building Java Programs
Topic 9 More Graphics Based on slides bu Marty Stepp and Stuart Reges from
Building Java Programs
Building Java Programs
Building Java Programs
Making a Smile Face Pepper.
Graphics Reading: Supplement 3G
Building Java Programs
Presentation transcript:

Unit 3 parameters and graphics Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work. Except where otherwise noted, this work is licensed under:

2 Constants Python doesn't really have constants. –Instead, declare a variable at the top of your code. –All methods will be able to use this "constant" value. constant.py MAX_VALUE = 3 def print_top(): for i in range(MAX_VALUE): for j in range(i): print(j) print() def print_bottom(): for i in range(MAX_VALUE, 0, -1): for j in range(i, 0, -1): print(MAX_VALUE) print()

3 Exercise Rewrite the Mirror lecture program in Python. Its output: #================# | <><> | | <>....<> | | <> <> | |<> <>| | <> <> | | <>....<> | | <><> | #================# –Make the mirror resizable by using a "constant."

4 Exercise Solution SIZE = 4 def bar(): print("#" + 4 * SIZE * "=" + "#") def top(): for line in range(1, SIZE + 1): # split a long line by ending it with \ print("|" + (-2 * line + 2 * SIZE) * " " + \ "<>" + (4 * line - 4) * "." + "<>" + \ (-2 * line + 2 * SIZE) * " " + "|") def bottom(): for line in range(SIZE, 0, -1): print("|" + (-2 * line + 2 * SIZE) * " " + \ "<>" + (4 * line - 4) * "." + "<>" + \ (-2 * line + 2 * SIZE) * " " + "|") # main bar() top() bottom() bar()

5 Parameters def name ( parameter, parameter,..., parameter ): statements –Parameters are declared by writing their names (no types) >>> def print_many(message, n):... for i in range(n):... print(message) >>> print_many("hello", 4) hello

6 Exercise Recreate the lines/boxes of stars example from lecture: ************* ******* *********************************** ********** * ********** ***** * *****

7 Exercise Solution stars.py # Draws a box of stars with the given width and height. def box(width, height): print(width * "*") for i in range(height - 2): print("*" + (width - 2) * " " + "*") print(width * "*") # main print(13 * "*") print( 7 * "*") print(35 * "*") box(10, 3) box(5, 4)

8 Default Parameter Values def name ( parameter = value,..., parameter = value ): statements –Can make parameter(s) optional by specifying a default value –Exercise: Modify stars.py to add an optional parameter for the character to use for the outline of the box (default "*" ). >>> def print_many(message, n=1):... for i in range(n):... print(message) >>> print_many("shrubbery") shrubbery >>> print_many("shrubbery", 3) shrubbery

9 Parameter Keywords name ( parameter = value,..., parameter = value ) –Can specify name of each parameter as you call a function –This allows you to pass the parameters in any order >>> def print_many(message, n):... for i in range(n):... print(message) >>> print_many(str="shrubbery", n=4) shrubbery >>> print_many(n=3, str="Ni!") Ni!

10 DrawingPanel Instructor-provided drawingpanel.py file must be in the same folder as your Python program At the top of your program, write: –from drawingpanel import * Panel's canvas field behaves like Graphics g in Java

11 DrawingPanel Example draw1.py from drawingpanel import * panel = DrawingPanel(400, 300) panel.set_background("yellow") panel.canvas.create_rectangle(100, 50, 200, 300)

12 –Notice, methods take x2/y2 parameters, not width/height Drawing Methods JavaPython drawLine panel.canvas.create_line( x1, y1, x2, y2 ) drawRect, fillRect panel.canvas.create_rect( x1, y1, x2, y2 ) drawOval, fillOval panel.canvas.create_oval( x1, y1, x2, y2 ) drawString panel.canvas.create_text( x, y, text=" text ") setColor (see next slide) setBackground panel.set_background( color )

13 Colors and Fill Python doesn't have fillRect, fillOval, or setColor. –Instead, pass outline and fill colors when drawing a shape. –List of all color names: –See class web site for visual index of colors! drawcolors.py from drawingpanel import * panel = DrawingPanel(400, 300) panel.canvas.create_rectangle(100, 50, 200, 200, outline="red", fill="yellow") panel.canvas.create_oval(20, 10, 180, 70, fill="blue")

14 Polygons Draw arbitrary polygons with create_polygon Draw line groups by passing more params to create_line drawpoly.py from drawingpanel import * panel = DrawingPanel(200, 200) panel.canvas.create_polygon(100, 50, 150, 0, 150, 100, fill="green") panel.canvas.create_line(10, 120, 20, 160, 30, 120, 40, 175)

15 Exercise Write a Python version of the Car program. –Convert this Java code to Python: DrawingPanel panel = new DrawingPanel(200, 200); panel.setBackground(Color.LIGHT_GRAY); Graphics g = panel.getGraphics(); g.setColor(Color.BLACK); // body g.fillRect(10, 30, 100, 50); g.setColor(Color.RED); // wheels g.fillOval(20, 70, 20, 20); g.fillOval(80, 70, 20, 20); g.setColor(Color.CYAN); // windshield g.fillRect(80, 40, 30, 20);

16 Exercise Modify your car program to use parameters so that cars can be drawn in many different locations.

17 Exercise Write a variation of the Car program where the car body is octagonal and there is a stop sign. –Stop sign at (150, 10), size 40 post at (165, 50), size 10x30, brown fill –Write an octagon function to draw the car body / stop sign. Points of car body, located at (10, 10): 1. (10, 20), 2. (20, 10), 3. (100, 10), 4. (110, 20), 5. (110, 50), 6. (100, 60), 7. (20, 60), 8. (10, 50) Points of stop sign, located at (150, 10): 1. (150, 20), 2. (160, 10), 3. (180, 10), 4. (190, 20), 5. (190, 40), 6. (180, 50), 7. (160, 50), 8. (150, 40) (An octagon has 10x10 triangular cuts in each corner.)

18 Animation Pause the panel by calling sleep animation.py from drawingpanel import * panel = DrawingPanel(350, 300) for i in range(20): # clear any previous image panel.canvas.create_rectangle(0, 0, 400, 400, outline="white", fill="white") panel.canvas.create_polygon(20 * i, 50, 20 * i, 100, 20 * i + 50, 75) panel.sleep(100)

19 Exercise Animate the car to make it drive across the panel using the sleep function.