Graphics 2D 2 Subject : T0934 / Multimedia Programming Foundation

advertisement
Graphics 2D 2
Subject
Session
Tahun
Versi
:
:
:
:
T0934 / Multimedia Programming Foundation
7
2009
1/0
Learning Outcomes
In the end of this session, students must be
able to:
– Understand the basic principal of
animation
– Apply correct Java syntax to animate
graphics primitives
Bina Nusantara
Outline
• Java Coordinate System
• Animation
• Java 2D Graphics
Bina Nusantara
Java Coordinate System
• The origin is located in the upper-left
corner of the window
• All values are positive integers.
Bina Nusantara
Animation in Java
• Animation is the sequencing of a series of
static images to generate the illusion of
movement.
Frame-Based
Animation
Cast-Based
Bina Nusantara
Frame Based Animation
• Displaying a sequence of static frames
– Simpler
– Often used in nongaming animations
– Background and objects are inseparable
Bina Nusantara
Cast Based Animation
• Moving objects independently of the
background
– Also called sprite animation
– Often used in games
– Background and objects are separable
Bina Nusantara
Frame Rate
• Frame Rate
– The standard frame rate is 12 fps (frames per second).
– The higher the frame rate is defined, the smoother the
animations is.
Bina Nusantara
Transparency
• Use Transparency Colors
– colors in an image that are unused (aren't drawn along with the
rest of the colors in the image)
Transparency
color
• Use transparency supported image format
– GIF
– PNG
Bina Nusantara
Z-Order
• the relative depth of objects on the screen
Bina Nusantara
Z-Order
Setting Control when dragged
Remove object
Bina Nusantara
Z-Order
Change Z-order
Bina Nusantara
Add the object match with it’s Z-order
Animation Process
1. Using Image objects to hold image files
2. Putting a series of images into an array
3. Display the image array sequentially in
high speed to produce the animation
4. Set the movements of the image array
Bina Nusantara
Drawing problems
• Flickering
– Caused by drawing the images directly and consecutively on the
screen
• Tearing
– a splitting effect that occurs when drawing to the screen happens
faster than the monitor's refresh rate
• Solution :
• Double Buffering
• Page Flipping
Bina Nusantara
Double Buffering
• create an image on back buffer (off screen)
• call the image from back buffer onto the screen (Block
Line Transfer/BLT)
blitting
Bina Nusantara
http://www.j2ee.me/docs/books/tutorial/figures/extra/fullscreen/doubleBuffering.gif
Double Buffering
Bina Nusantara
Full code downloadedable in additional materi.
Double Buffering
Result
This animation didn’t have any flicker.
Bina Nusantara
Page Flipping
• Use 2 buffers called back
buffer and primary
surface
• use video pointer to
switch between two
buffers
• the pointed buffer will
become primary surface
and the other one back
buffer
Bina Nusantara
http://www.j2ee.me/docs/books/tutorial/figures/extra/fullscreen/pageFlipping.gif
Page Flipping
Check whether the PC is support for Page Flipping or not
Create the back buffer
Bina Nusantara
Page Flipping
Draw something in back buffer
Bina Nusantara
Page Flipping
Flip the back buffer to screen
Result
Full code downloadable in Additional Materi
Bina Nusantara
Animation Special Effects
• Tweening
• Warping
• Morphing
Bina Nusantara
Tweening
• The interpolation of two images to yield a
smooth-flowing animation
• Also called In-betweening
• Typically done with points, lines, or
polygons
Bina Nusantara
Warping
• the mathematical trick of stretching and
squashing an image
Bina Nusantara
Morphing
Tweening
Warping
Dissolving
Morphing
Bina Nusantara
http://code.google.com/p/javamorph/
References
• Introduction to Java Programming. 2009. Daniel Liang. Ch: Java 2D
API
• Java Media APIs. 2009.
http://books.google.co.id/books?id=FtrwhyPa_bgC&pg=PA72&lpg=
PA72&dq=user+coordinate+space+coordinate+java&source=bl&ots
=vxxsy6CD9Z&sig=zKOxJ9Q7hGCqtxkajz9XFa8rS1I&hl=id&ei=j4s4
SvDXJabo6gPS05zQCw&sa=X&oi=book_result&ct=result&resnum=
5#PPA94,M1
• Java 2D Graphics (Jonathan Knudsen). 2009.
http://books.google.co.id/books?id=UxM2iXiFqbMC&pg=PA23&lpg=
PA23&dq=graphics+coordinate+user+device&source=bl&ots=hVj3O
0X5Ih&sig=XUWbcpuTLCrMQ1fZDvvDOj61g0w&hl=id&ei=fCw3So
PVBJf6kAXfnaCcDQ&sa=X&oi=book_result&ct=result&resnum=6#P
PA90,M1
Bina Nusantara
References
• Java Graphics Techniques. 2009.
http://www.ssuet.edu.pk/taimoor/books/1-57521-1483/ch5.htm#TheGraphicsCoordinateSystem
• Sprite Animation. 2009. http://www.ssuet.edu.pk/taimoor/books/157521-148-3/ch6.htm
• Double Buffering and Page Flipping. 2008.
http://www.j2ee.me/docs/books/tutorial/extra/fullscreen/doublebuf.ht
ml
• Morphing on Your PC. 2006. http://www-inf.intevry.fr/~meunier/Morphing/DrDobbs3/printableArticle.jhtml.html
• Fast Page Flipping Java code example. 2006.
http://www.javafaq.nu/java-example-code-782.html
• Reducing Flicker: Step 1 Override Update. 2009.
http://www.particle.kth.se/~fmi/kurs/PhysicsSimulation/Lectures/05B/
reduceFlicker1.html
Bina Nusantara
References
• Reducing Flicker: Step 2 Clipping. 2009.
http://www.particle.kth.se/~fmi/kurs/PhysicsSimulation/Lectures/05B/
reduceFlicker2.html
• Reducing Flicker: Step 3 Double Buffer.
http://www.particle.kth.se/~fmi/kurs/PhysicsSimulation/Lectures/05B/
reduceFlicker3.html
Bina Nusantara
Download