CSC 308 Graphics Programming - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

CSC 308 Graphics Programming

Description:

Java's Machinery ... Java implements a comprehensive set of graphics primitives. ... Modify the Gcanvas.java code to draw a square. ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 16
Provided by: acade124
Category:

less

Transcript and Presenter's Notes

Title: CSC 308 Graphics Programming


1
CSC 308 Graphics Programming
  • Say Hi to Graphics
  • i.e. A first, simple graphics program

Dr. Paige H. Meeker Computer Science Presbyterian
College, Clinton, SC
2
Lecture 2
  • Creating Simple Graphics in Java
  • Homework
  • Material modified from Computer Graphics via
    Java by Ian Ferguson online ebook and a nice
    download) http//www.ablibris.com/site/review.php
    3?bid19

3
Features
  • Main window
  • Graphics canvas
  • Some lines drawn

4
Lets Say Hi!
5
Javas Machinery
  • In order to draw things on screen (which is what
    this is all about) you have to have quite a bit
    of Java machinery in place before you can start.

6
Gapp and Gcanvas are ours were developing
them. JFrame and JPanel from which they inherit,
are part of the Java Foundation Classes - in
particular they are part of the swing GUI
components. The class Gapp inherits from
JFrame, so when a Gapp object is created, a new
GUI window appears on the screen. A
Gcanvas/JPanel is simply something we can draw
on, but it isnt allowed to be on screen by
itself, it must be part of a JFrame. So what we
actually need is an instance of Gapp with an
instance of Gcanvas inside it
7
Gapp main()
  • static public void main(String args)
  • // Main entry point
  • try
  • Gapp myGapp new Gapp()
  • myGapp.initComponents()
  • myGapp.setVisible(true)
  • catch (Exception e)
  • e.printStackTrace()
  • //end main

8
Gapp initComponents()
  • public void initComponents() throws Exception
  • setLocation(new java.awt.Point(0, 30))
  • setSize(new java.awt.Dimension(350, 400))
  • setTitle("Graphics Application")
  • getContentPane().add(new Gcanvas())
  • addWindowListener(new java.awt.event.WindowAdapte
    r()
  • public void windowClosing(java.awt.event.WindowE
    vent e)
  • thisWindowClosing(e)
  • )
  • //end - initComponents

9
  • public void paintComponent(Graphics g)
  • g.drawLine(100,50,100,150)
    g.drawLine(100,100,150,100)
    g.drawLine(150,100,150,150)
    g.drawLine(200,150,200,100)
    g.drawLine(200,50,200,60)

10
Upon Closer Examination
  • you may be asking, this program doesnt actually
    seem to call the paintComponent method and where
    does it get g the Graphics object from? You are
    right, it doesnt. paintComponent is what is
    known as a callback method. Its actually
    called by the system everytime the JPanel object
    it belongs to needs to be displayed on screen and
    likewise the system passes us the mysterious g
    to provide all of those useful functions - we
    dont have to worry about it.

11
So,
  • Our program hi is actually a simple drawing of
    5 lines, each with its own start and end point.
    To draw using this technique, its easiest to
    create a grid, label it, and plot your points.

12
Graphics Primitives
  • A graphics primitive can be loosely defined as a
    drawing function which the system makes available
    to the applications programmer.
  • Java implements a comprehensive set of graphics
    primitives. Lets take a look at their
    description

13
Java Graphics Class API
  • http//java.sun.com/j2se/1.5.0/docs/api/

14
Homework Due Wednesday, 8/30/06
  • Modify the Gcanvas.java code to draw a square.
  • Create from this a Swirling Square as seen
    below.

15
Homework Hint
  • This basically draws a square, then a second
    square inside the first reduced in size by 0.1
    and slightly rotated. This continues for 40
    iterations.
  • HINT P1x ((1-u)Px)(uQx) and P1y
    ((1-u)Py)(uQy) and so on and so on
Write a Comment
User Comments (0)
About PowerShow.com