Panning and zooming a component, Computer Graphics

Assignment Help:

Panning and zooming Components (such as your Polybounce or Animation) is simply a matter of reFrameing the world window. To pan right or left horizontally, one shifts it in the positive or negative x direction, respectively. To pan up or down vertically one shifts it in the positive or negative y direction. If factor is the fraction of the world window that you want to pan, these can be implemented as:

// Horiz. pan --- Pan left moves world window left void Polybounce::panH(double factor)
{
reFrame(world()+Point2(w_width()*factor,0));
}
// Vert. pan --- Pan up moves world window down
void Polybounce::panV(double factor)
{
reFrame(world()+Point2(0,w_height()*factor));
}

To zoom in or out, one needs to resize the world window either smaller or larger, respectively, without changing the center of the window. You can do this by ?rst translating the center of the window to the origin, then scaling the window (using scalar multiplication of RealRects), then translating it back to its original center.

This still only takes a few lines of code. If scale is the scaling factor:

// Zoom
void Polybounce::zoom(double scale)
{
Point2 center( (world().left()+world().right())/2,
(world().bottom()+world().top())/2 );
// translate to origin
reFrame(world()-center);
// scale by getZoom
reFrame(world()*Point2(scale,scale));
// translate back
reFrame(world()+center);
}

To add panning and zooming to your Polybounce without pan and zoom sliders,you can simply add keyboard events for these which just pan by a ?xed fragment,1/4 of the window, say, and zoom by ?xed scaling factors, perhaps 1/2 for zoom in and 2 for zoom out. These could be added to the Polybounce class, but they will need to be passed from the Display class anyway, so there is no reason to not just call the pan and zoom functions directly from Display's keyboard event handler.


Related Discussions:- Panning and zooming a component

Video conferencing and virtual reality, Video Conferencing and Virtual Real...

Video Conferencing and Virtual Reality Virtual reality is a truly fascinating multimedia application. In such, the computer creates an artificial environment using hardware an

Character generation - output primitives, Character Generation You know...

Character Generation You know that graphics displays often contain components which are text based.  For example graph labels, annotations, descriptions on data flow diagrams,

Define affine transformation, Define Affine transformation?  A coordina...

Define Affine transformation?  A coordinate transformation of the form X= axxx +axyy+bx, y 'ayxx+ayy y+by  is known as a two-dimensional affine transformation. Every of the tra

digital audio technologies, Digital audio technologies DAB (Digita...

Digital audio technologies DAB (Digital Audio Broadcasting) Digital Audio Tape (DAT) DVD DVD-A Digital audio player Compact disc (CD) Minidisc (obsolete

What are the important applications of computer graphics, Can you list at l...

Can you list at least three important applications of computer graphics? There are lots of interesting applications of computer graphics. Three common applications are compute

Write a c-code that plots an object on the window, Write a C-code that plot...

Write a C-code that plots an object on the window and on the user's click of mouse on the window, the object starts rotating continuously until the user presses the mouse again.

Basic ray tracing algorithm - polygon rendering, Basic Ray Tracing Algorith...

Basic Ray Tracing Algorithm - Polygon Rendering The Hidden-surface removal is the most complete and most versatile method for display of objects in a realistic fashion. The co

Associative links, Associative Links: it is a link that is completely inde...

Associative Links: it is a link that is completely independent of the exact structure of the information. For illustration we have links depends on the meaning of various informat

Amiga - hardware for computer animation, Amiga - Hardware for computer anim...

Amiga - Hardware for computer animation Originally owned through Commodore, Amiga computers have conduct a position in the computer animation industry for many years. This is

Spline curve - modeling and rendering, Spline curve - Modeling and Renderin...

Spline curve - Modeling and Rendering Spline curve is created by using Control points that control the shape of the curve Spline curve is a composite curve formed along with s

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd