Garfield AP CS. Graphics

Similar documents
Building Java Programs

Building Java Programs

Building Java Programs

Building Java Programs

Topic 8 graphics. -mgrimes, Graphics problem report 134

Using Graphics. Building Java Programs Supplement 3G

Topic 8 Graphics. Margaret Hamilton

Topic 9 More Graphics. Based on slides bu Marty Stepp and Stuart Reges from

Parameters. Repetitive figures. A solution? Parameterization. Declaring parameterized methods. Generalizing methods. Readings: 3.1

CSc 110, Autumn 2016 Lecture 7: Graphics. Adapted from slides by Marty Stepp and Stuart Reges

Building Java Programs

Building Java Programs

Week 3. parameters, return, math, graphics

Unit 3. parameters and graphics

CSc 110, Spring 2018 Lecture 9: Parameters, Graphics and Random. Adapted from slides by Marty Stepp and Stuart Reges

Admin. CS 112 Introduction to Programming. Counting Down: Code Puzzle. Counting Down: Code Puzzle

CS 112 Introduction to Programming

CS 112 Introduction to Programming

Admin. CS 112 Introduction to Programming. Recap: OOP. Math.random() Design. Static Math.random() method vs Random Objects

CIS 162 Project 1 Business Card Section 04 (Kurmas)

AP CS Java Syntax Summary: (version 3)

CISC 1600 Lecture 3.1 Introduction to Processing

12/22/11. } Rolling a Six-Sided Die. } Fig 6.7: Rolling a Six-Sided Die 6,000,000 Times

Repetition. We might start out with the following program that draws only the left most object.

public static void main(string[] args) { GTest mywindow = new GTest(); // Title This program creates the following window and makes it visible:

TWO-DIMENSIONAL FIGURES

CS Problem Solving and Object-Oriented Programming

Using the API: Introductory Graphics Java Programming 1 Lesson 8

CS 106A, Lecture 11 Graphics

AP CS Java Syntax Summary: (version 4)

Introduction to Computer Science I

Appendix F: Java Graphics

Exercise NMCGJ: Animated Graphics

CS 100: Programming Assignment P1

Appendix F: Java Graphics

AP CS Unit 12: Drawing and Mouse Events

CS 305j Midterm 1 Fall 2007

Assignment 2. Application Development

CSC 1051 Data Structures and Algorithms I. Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University

CS 312 Midterm 1 Spring 2013

2IS45 Programming

CSC System Development with Java Introduction to Java Applets Budditha Hettige

CS 112 Introduction to Programming

Java Programming Lecture 6

CS 112 Introduction to Programming

CS 305j Midterm 1 Fall 2006

CIS 110 Introduction To Computer Programming. October 5th, 2011 Exam 1. Answer key for review problems

2D Graphics. Shape Models, Drawing, Selection. CS d Graphics 1

CS 312 Midterm 1 Spring 2013

AWT COLOR CLASS. Introduction. Class declaration. Field

CMPSCI 119 LAB #2 Anime Eyes Professor William T. Verts

CMPSCI 119 LAB #2 Greebles / Anime Eyes Professor William T. Verts

Chapter 3 - Introduction to Java Applets

Admin. CS 112 Introduction to Programming. Recap. Example: Nested Loop. Example: Rewrite

IT101. Graphical User Interface

Graphics Applets. By Mr. Dave Clausen

Graphics and Java 2D Introduction OBJECTIVES. One picture is worth ten thousand words.

Chapter 1 Introduction to Java


An Introduction to Processing

@Override public void start(stage primarystage) throws Exception { Group root = new Group(); Scene scene = new Scene(root);

G51PRG: Introduction to Programming Second semester Applets and graphics

INTRODUCTION TO COMPUTER PROGRAMMING. Richard Pierse. Class 9: Writing Java Applets. Introduction

5. Introduction to Procedures

Dr. Hikmat A. M. AbdelJaber

Java - Applets. C&G criteria: 1.2.2, 1.2.3, 1.2.4, 1.3.4, 1.2.4, 1.3.4, 1.3.5, 2.2.5, 2.4.5, 5.1.2, 5.2.1,

11/7/12. Discussion of Roulette Assignment. Objectives. Compiler s Names of Classes. GUI Review. Window Events

Advanced Internet Programming CSY3020

Applets and the Graphics class

Java Applet Basics. Life cycle of an applet:

Lecture 3. parameters, return, math, graphics

Exam: Applet, Graphics, Events: Mouse, Key, and Focus

9. APPLETS AND APPLICATIONS

CISC 1115 (Science Section) Brooklyn College Professor Langsam. Assignment #5

Topic Notes: Java and Objectdraw Basics

2D Graphics. Shape Models, Drawing, Selection. CS d Graphics 1

parameters, return, math, graphics nobody expects the spanish inquisition!

The FacebookPerson Example. Dr. Xiaolin Hu CSC 2310, Spring 2015

OBJECT ORIENTED PROGRAMMING. Course 8 Loredana STANCIU Room B613

CSC 101: Lab Manual#11 Programming Turtle Graphics in Python Lab due date: 5:00pm, day after lab session

Graflog User s guide

Affine Transformations. Transforming shape models Combining affine transformations Scene graphs, interactor trees Hit tests on transformed shapes

CS Programming Exercise:

Warping & Blending AP

PYTHON NOTES (drawing.py and drawstuff.py)

CS 305j Midterm 1 Fall 2008

Data Representation and Applets

An applet is a program written in the Java programming language that can be included in an HTML page, much in the same way an image is included in a

Java - Applets. public class Buttons extends Applet implements ActionListener

+. n is the function parameter and the function returns the sum.

We will start our journey into Processing with creating static images using commands available in Processing:

+ Inheritance. Sometimes we need to create new more specialized types that are similar to types we have already created.

DEMYSTIFYING PROGRAMMING: CHAPTER TEN REPETITION WITH WHILE-LOOP (TOC DETAILED)

In order to teach you about computer programming, I am going to make several assumptions from the start:

TOPIC 8 MORE ON WHILE LOOPS

AP Computer Science Unit 1. Writing Programs Using BlueJ

CSc 110, Spring Lecture 7: Graphics, return values and math

CSE115 Lab 4 Fall 2016

1.00 Lecture 14. Lecture Preview

Chapter 2 Exercise Solutions

Transcription:

Garfield AP CS Graphics

Assignment 3 Working in pairs Conditions: I set pairs, you have to show me a design before you code You have until tomorrow morning to tell me if you want to work alone

Cumulative sum Write a method called cumulativesum that takes three parameters: a starting value, an ending value and an increment that prints the sum of the integers between the two values using the increment. For example, the call cumulativesum(3, 8, 2) should print 15 (3 + 5 + 7).

Warm-up The Leibniz formula for pi states that Write a method called pi that takes one integer parameter. The parameter should represent how many terms of the sequence to use to approximate pi. The method should print out the approximate value (for pi, not for pi/4!).

Graphics We will draw graphics in Java using 3 kinds of objects: DrawingPanel: A window on the screen. Not part of Java; provided by UW Graphics: A "pen" to draw shapes/lines on a window. Color: Colors in which to draw shapes.

DrawingPanel "Canvas" objects that represents windows/drawing surfaces To create a window: DrawingPanel name = new DrawingPanel(width, height); Example: DrawingPanel panel = new DrawingPanel(300, 200); The window has nothing on it. We can draw shapes and lines on it using another object of type Graphics. 6

Coordinate system Each (x, y) position is a pixel ("picture element"). (0, 0) is at the window's top-left corner. x increases rightward and the y increases downward. The rectangle from (0, 0) to (200, 100) looks like this: (0, 0) x+ y+ (200, 100) 7

Graphics "Pen" objects that can draw lines and shapes Access it by calling getgraphics on your DrawingPanel. Graphics g = panel.getgraphics(); Draw shapes by calling methods on the Graphics object. g.fillrect(10, 30, 60, 35); g.filloval(80, 40, 50, 70); 8

Java class libraries, import Java class libraries: Classes included with Java's JDK. organized into groups named packages To use a package, put an import declaration in your program. Syntax: // put this at the very top of your program import packagename.*; Graphics is in a package named java.awt import java.awt.*; In order to use Graphics, you must place the above line at the very top of your program, before the public class header. 9

Graphics methods Method name Description g.drawline(x1, y1, x2, y2); line between points (x1, y1), (x2, y2) g.drawoval(x, y, width, height); g.drawrect(x, y, width, height); outline largest oval that fits in a box of size width * height with top-left at (x, y) outline of rectangle of size width * height with top-left at (x, y) g.drawstring(text, x, y); text with bottom-left at (x, y) g.filloval(x, y, width, height); g.fillrect(x, y, width, height); g.setcolor(color); fill largest oval that fits in a box of size width * height with top-left at (x, y) fill rectangle of size width * height with top-left at (x, y) set Graphics to paint any following shapes in the given color 10

Color Create one using Red-Green-Blue (RGB) values from 0-255 Color name = new Color(red, green, blue); Example: Color brown = new Color(192, 128, 64); Or use a predefined Color class constant (more common) Color.CONSTANT_NAME where CONSTANT_NAME is one of: BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, or YELLOW 11

Using Colors Pass a Color to Graphics object's setcolor method Subsequent shapes will be drawn in the new color. g.setcolor(color.black); g.fillrect(10, 30, 100, 50); g.drawline(20, 0, 10, 30); g.setcolor(color.red); g.filloval(60, 40, 40, 70); Pass a color to DrawingPanel's setbackground method The overall window background color will change. Color brown = new Color(192, 128, 64); panel.setbackground(brown); 12

Outlined shapes To draw a colored shape with an outline, first fill it, then draw the same shape in the outline color. import java.awt.*; // so I can use Graphics public class OutlineExample { public static void main(string[] args) { DrawingPanel panel = new DrawingPanel(150, 70); Graphics g = panel.getgraphics(); // inner red fill g.setcolor(color.red); g.fillrect(20, 10, 100, 50); // black outline g.setcolor(color.black); g.drawrect(20, 10, 100, 50); 13

Drawing with loops The x,y, w,h expression can use the loop counter variable: DrawingPanel panel = new DrawingPanel(400, 300); panel.setbackground(color.yellow); Graphics g = panel.getgraphics(); g.setcolor(color.red); for (int i = 1; i <= 10; i++) { g.filloval(100 + 20 * i, 5 + 20 * i, 50, 50); Nested loops are okay as well: DrawingPanel panel = new DrawingPanel(250, 250); Graphics g = panel.getgraphics(); g.setcolor(color.blue); for (int x = 1; x <= 4; x++) { for (int y = 1; y <= 9; y++) { g.drawstring("java", x * 40, y * 25); 14

Loops that begin at 0 Beginning at 0 and using < can make coordinates easier. Example: Draw ten stacked rectangles starting at (20, 20), height 10, width starting at 100 and decreasing by 10 each time: DrawingPanel panel = new DrawingPanel(160, 160); Graphics g = panel.getgraphics(); for (int i = 0; i < 10; i++) { g.drawrect(20, 20 + 10 * i, 100-10 * i, 10); 15

Drawing w/ loops questions Code from previous slide: DrawingPanel panel = new DrawingPanel(160, 160); Graphics g = panel.getgraphics(); for (int i = 0; i < 10; i++) { g.drawrect(20, 20 + 10 * i, 100-10 * i, 10); Write variations of the above program that draw the figures at right as output. 16

Drawing w/ loops answers Solution #1: Graphics g = panel.getgraphics(); for (int i = 0; i < 10; i++) { g.drawrect(20 + 10 * i, 20 + 10 * i, 100-10 * i, 10); Solution #2: Graphics g = panel.getgraphics(); for (int i = 0; i < 10; i++) { g.drawrect(110-10 * i, 20 + 10 * i, 10 + 10 * i, 10); 17

Drawing with methods To draw in multiple methods, you must pass Graphics g. import java.awt.*; public class Car2 { public static void main(string[] args) { DrawingPanel panel = new DrawingPanel(200, 100); panel.setbackground(color.light_gray); Graphics g = panel.getgraphics(); drawcar(g); public static void drawcar(graphics g) { g.setcolor(color.black); g.fillrect(10, 30, 100, 50); g.setcolor(color.red); g.filloval(20, 70, 20, 20); g.filloval(80, 70, 20, 20); g.setcolor(color.cyan); g.fillrect(80, 40, 30, 20); 18

Parameterized figures Modify the car-drawing method so that it can draw cars at different positions, as in the following image. Top-left corners: (10, 30), (150, 10) 19

Drawing parameter question Modify drawcar to allow the car to be drawn at any size. Existing car: size 100 Second car: size 50, top/left at (150, 10) Then use a for loop to draw a line of cars. Start at (10, 130), each car size 40, separated by 50px. 20

Polygon Objects that represent arbitrary shapes Add points to a Polygon using its addpoint(x, y) method. Example: DrawingPanel p = new DrawingPanel(100, 100); Graphics g = p.getgraphics(); g.setcolor(color.green); Polygon poly = new Polygon(); poly.addpoint(10, 90); poly.addpoint(50, 10); poly.addpoint(90, 90); g.fillpolygon(poly); 21

Animation with sleep DrawingPanel's sleep method pauses your program for a given number of milliseconds. You can use sleep to create simple animations. DrawingPanel panel = new DrawingPanel(250, 200); Graphics g = panel.getgraphics(); g.setcolor(color.blue); for (int i = 1; i <= 10; i++) { g.filloval(15 * i, 15 * i, 30, 30); panel.sleep(500); Try adding sleep commands to loops in past exercises in this chapter and watch the panel draw itself piece by piece. 22

Coming up Tomorrow: Graphics warm-up; Assignment 3 introduced Wednesday: Short quiz (all we ve seen except graphics with emphasis on loops and parameters); Work on assignment 3 Friday: Work on assignment 3 23