Graphics Programming - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

Graphics Programming

Description:

one with double coordinates (easier to use) Example: ... Line2D line = new Line2D.Double(start, end) or. Line2D line = new Line2D.Double(px, py, qx, qy) ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 14
Provided by: dwi47
Category:

less

Transcript and Presenter's Notes

Title: Graphics Programming


1
Graphics Programming
2
In this class we will cover
  • Drawing lines, rectangles, and ellipses
  • Copying an area
  • Drawing an image

3
Drawing Lines, Rectangles and Ellipses
  • Java2D oraganizes geometric shapes in OO fashion.
    There are classes to represent lines, rectangles
    and ellipses.
  • Line2D
  • Rectangle2D
  • Ellipse2D
  • These all implement the Shape interface

4
Drawing Shapes
  • To draw a shape, you first create an object of a
    class that implements the Shape interface and
    then call the draw method of the Graphics2D
    class. Rectangle 2D rect . . .g2.draw(rect)
  • There are two versions of each Shape class
  • one with float coordinates (conserves memory)
  • one with double coordinates (easier to use)
  • ExampleRectangle2D rect new
    Rectangle2D.Double(10.0, 25.0, 22.5, 20.0)

5
Drawing Rectangles
  • Rectangles are simple to construct
  • Requires four arguments
  • x- and y-coordinates of the upper-left corner
  • the width and the height
  • The Rectangle2D class has over 20 useful methods
    including
  • get Width
  • getHeight
  • getCenterX
  • getCenterY

6
Drawing Rectangles
  • Sometimes you dont have the top-left corner
    readily available.
  • It is possible to have two diagonal corners of a
    rectangle that are not the top-left corner and
    the bottom-right corner.
  • To create a rectangle in this case use the
    setFrameFromDiagonal method.Rectangle2D rect
    new Rectangle2D.Double()rect.setFrameFromDiagona
    l(px, py, qx, qy)
  • If you have a Point2D object, you can also create
    a rectangle by callingRectangle2D rect new
    Rectangle2D.Double(p1, p2)

7
Drawing Ellipses
  • The class Ellipse2D is inherited from the same
    Rectangle class that Rectangle2D is.
  • because of the bounding box surrounding the
    ellipse
  • So, creating an Ellipse2D object is very similar
    to creating a Rectangle2D object.Ellipse2D e
    new Ellipse2D.Double(px, py, qx, qy)where px, py
    are the x- and y-coordinates of the top-left
    cornerand qx, qy are the x- and y-coordinates of
    the bottom-right cornerof the bounding box of
    the ellipse

8
Drawing Lines
  • To construct a line, simple use the Line2D class.
  • It too, requires 4 arguments (the x and y
    coordinates of the start and end positions)
  • These coordinates can be 2 Point2D objects or 2
    pairs of numbers.Line2D line new
    Line2D.Double(start, end)
    orLine2D line new Line2D.Double(px, py, qx,
    qy)

9
Filling Shapes
  • You can fill the interior of closed shape objects
    with a color.
  • Simply call the fill instead of draw method on
    the Graphics object.Rectangle2D rect new
    Rectangle2D.Double(x, y, x2, y2)g2.setPaint(Colo
    r.red)g2.fill(rect)

10
Images
  • You can display images on the Graphics object.
  • You can use images stored locally or someplace on
    the Internet.
  • If an image is stored locally callString
    filename Image image ImageIO.read(new
    File(filename))
  • If an image is on the Internet, use the
    urlString filename Image image
    ImageIO.read(new URL(url)
  • To draw the imageg.drawImage(image, x, y, null)

11
Copying an Area
  • copyArea() method - Use to copy an area
  • Requires 6 parameters
  • x-coordinate and y-coordinate of the upper-left
    corner of the area to be copied
  • Width and height of the area to be copied
  • The horizontal and vertical displacement of the
    destination of the copy

12
More on Graphics
  • We have just begun to touch on the various
    graphics shapes available. You can also draw
  • arcs
  • polygons
  • three-dimensional shpes
  • Java 2D also lets you create higher-quality
    two-dimensional graphics, images, and text using
  • fill patterns such as gradients
  • strokes that define the width and style of a
    drawing stroke
  • anti-aliasing, a graphics technique for producing
    smoother on-screen graphics
  • For more info see http//java.sun.com/docs/books/
    tutorial/2d/display/strokeandfill.html

13
Example
  • So, lets put all of this together in an example
  • Seehttp//www2.bc.edu/bernier/MC697/LectureNot
    es/DrawShapesTest.java
Write a Comment
User Comments (0)
About PowerShow.com