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

Digital signal processing system for an analog signal, QUESTION (a) Dra...

QUESTION (a) Draw and explain the block diagram of a Digital Signal Processing System for an analog signal. (b) Draw the pictorial representation of the signals at each leve

Crt - cathode ray tube, CRT - Cathode Ray Tube Electron gun is used...

CRT - Cathode Ray Tube Electron gun is used to send an electron beam aimed at a particular point on the screen. Deflection system is used to make the beam strike the screen

What is computer graphics?, What Is Computer Graphics? The term Graphi...

What Is Computer Graphics? The term Graphics mean is Graphical Tricks. All image or picture is actually a graph and when various mathematical tricks are utilized to manipulate

Interpolation spleen and approximation spine, Q.   Give the difference betw...

Q.   Give the difference between interpolation spleen and approximation spine. Also mention the geometric and parametric continuity conditions in these curves. Ans. A spleen s

Beam penetration method and shadow mask method, Beam Penetration Method and...

Beam Penetration Method and Shadow Mask Method Two methods exist for displaying colors in a CRT monitor - beam penetration method and shadow mask method. Beam penetration metho

Essential elements for the raster scan display, Essential Elements for the ...

Essential Elements for the Raster Scan Display Three elements are essential for the raster scan display. They are as: 1) The Frame Buffer that is also termed as the Refresh

Multimedia tools, MULTIMEDIA TOOLS : In this sense, we will emphasize on v...

MULTIMEDIA TOOLS : In this sense, we will emphasize on various tools utilized in the field of multimedia. Basic Tools: The fundamental toolset for building multimedia p

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