Presentation is loading. Please wait.

Presentation is loading. Please wait.

Georgia Institute of Technology Drawing in Java – part 2 Barb Ericson Georgia Institute of Technology September 2005.

Similar presentations


Presentation on theme: "Georgia Institute of Technology Drawing in Java – part 2 Barb Ericson Georgia Institute of Technology September 2005."— Presentation transcript:

1 Georgia Institute of Technology Drawing in Java – part 2 Barb Ericson Georgia Institute of Technology September 2005

2 Georgia Institute of Technology Learning Goals Understand at a conceptual and practical level –How to draw more simple shapes with java.awt.Graphics Arcs Rectangles –Bitmapped pictures versus vector graphics –How to use a java.awt.Graphics2D class How to convert the Graphics class to it How to set the color How to set the paint How to set the stroke (paint brush) How to create the object to be painted How to paint the object

3 Georgia Institute of Technology Drawing Arcs Arcs –Outlined Arc g.drawArc(topLeftX, topLeftY, width, height, startAngle, arcAngle); –Filled Arc g.fillArc((topLeftX, topLeftY, width, height, startAngle, arcAngle);

4 Georgia Institute of Technology Drawing Rectangles Rectangle –Outlined Rectangle g.drawRect(topLeftX, topLeftY, width, height); –Filled Rectangle g.fillRect(topLeftX,topLeftY,width,height); –Outlined Rounded Rectangle g.drawRoundRect(topLeftX,topLeftY,width,height,arcWidth,ar cHeight); –Filled Rounded Rectangle g.fillRoundRect(topLeftX,topLeftY,width,height,arcWidth,arcH eight);

5 Georgia Institute of Technology Drawing on a Blank Picture You can make pictures from the “blank” files –They will have all white pixels –640x480.jpg –7inX95in.jpg You can also create a “blank” picture with a width and height –They will also have all white pixels –Picture blankPicture = new Picture(width,height);

6 Georgia Institute of Technology Draw a Picture Exercise Create a method that will draw a simple picture –Use at least one rectangle –Use at least one polygon –Use at least one oval –Use at least one arc

7 Georgia Institute of Technology Bitmapped Versus Vector Graphics We have been doing bitmapped graphics –Specifying the color of each pixel in the picture We just wrote a method that drew a simple picture –Which is smaller the program or the picture? Some applications use vector graphics which are programs that produce the picture –Used in Postscript, Flash, and AutoCAD –Advantages: smaller, easy to change, can be scaled

8 Georgia Institute of Technology Precision Drawings How would you draw a stack of filled rectangles starting from the lightest one at the bottom right and the darkest one at the top left. –With 10 pixels between each –Not easy with drawing packages

9 Georgia Institute of Technology Draw Filled Rectangles Method public void drawFilledRectangles() { Graphics g = this.getGraphics(); Color color = null; // loop 25 times for (int i = 25; i > 0; i--) { color = new Color(i * 10, i * 5, i); g.setColor(color); g.fillRect(0,0,i*10,i*10); }

10 Georgia Institute of Technology Java 2D Graphics – java.awt Newer drawing classes –More object-oriented –Instead of drawOval() or fillOval() you create a Ellipse2D object and ask a 2d graphics object to draw or fill it –Geometric shapes are in the java.awt.geom package Advanced Drawing –Support for different types of brushes Line thickness, dashed lines, etc –Supports cubic curves and general paths –Drawing of gradients and textures –Move, rotate, scale and shear text and graphics –Create composite images

11 Georgia Institute of Technology Java 2D Demo Open a console window Change directory to C:\jdk\demo\jfc\Java2D Run the demo java –jar Java2Demo.jar The source code is inC:\jdk\demo\jfc\Java2D\ src

12 Georgia Institute of Technology How To Use Java 2D Cast the Graphics class to Graphics2D –Graphics2D g2 = (Graphics2D) gObj; Set up the stroke if desired (type of pen) –g2.setStroke(new BasicStroke(widthAsFloat)); Set up any Color, GradientPaint, or TexturePaint –g2.setPaint(Color.blue); –g2.setPaint(blueToPurpleGradient); –g2.setPaint(texture); Create a geometric shape –Line2D line2D = new Line2D.Double(0.0,0.0,100.0,100.0); Draw the outline of a geometric shape –g2.draw(line2d); Fill a geometric shape –g2.fill(rectangle2d);

13 Georgia Institute of Technology Graphics2D inherits from Graphics Inherits basic drawing ability from Graphics Adds more advanced drawing ability Graphics Graphics2D

14 Georgia Institute of Technology Drawing Lines Exercise Create a new method (drawWideX) for adding two wide crossed lines to a picture –Using a passed color –Using a passed line width Set up the stroke to make the lines thicker –g2.setStroke(new BasicStroke(width)); –Draw the lines You can use redMotorcycle.jpg to test.

15 Georgia Institute of Technology Using a Graphics Object to Copy an Image public void copy(Picture source, int x, int y) { // get the graphics object Graphics g = this.getGraphics(); // copy the image g.drawImage(source.getImage(),x,y,null); }

16 Georgia Institute of Technology Using Graphics2D to Copy an Image public void copy2D(Picture source, int x, int y) { // get the graphics object Graphics g = this.getGraphics(); Graphics g2 = (Graphics2D) g; // copy the image g2.drawImage(source.getImage(),x,y,null); }

17 Georgia Institute of Technology Testing the Copy Method Picture p1 = new Picture(FileChooser.getMediaPath("beach.jpg")); Picture p2 = new Picture(FileChooser.getMediaPath("turtle.jpg")); p1.copy2D(p2,194,304); p1.show();

18 Georgia Institute of Technology Summary You can use the original Graphics class for simple 2d drawing –Lines, rectangles, ovals, polygons, strings, images You can use the Graphics2D class for more advanced drawing –Width of paint brush, paint geometric objects Graphics2D inherts from Graphics –Means it can do the same methods –But also adds others


Download ppt "Georgia Institute of Technology Drawing in Java – part 2 Barb Ericson Georgia Institute of Technology September 2005."

Similar presentations


Ads by Google