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

Gourand shading, This renders a polygon surface by linearly interpolating i...

This renders a polygon surface by linearly interpolating intensity values across the surface. Intensity values for each polygon are matched with the values of adjacent polygon alon

Analog sound vs. digital sound, Analog Sound vs. Digital Sound Sound e...

Analog Sound vs. Digital Sound Sound engineers have been debating the respective merits of digital and analog sound reproduction ever if the form of digital sound recordings.

What is multimedia, What is Multimedia: People only remember 20 percent of...

What is Multimedia: People only remember 20 percent of what they see and 30 percent of what they hear. But they keep in mind 50 percent of what they see and hear and as much as 80

Three-dimensional viewing, Three-Dimensional Viewing Three dimensional ...

Three-Dimensional Viewing Three dimensional objects are created using modelling coordinate system. The modelled objects are then placed in locations specified in the scene with

Objectives-multimedia, Objectives-Multimedia After going through this s...

Objectives-Multimedia After going through this section, you should be capable to: explain hypertext and hypermedia ideas, illustrate how multimedia applications are

Traditional animation techniques - computer animation, Traditional Animatio...

Traditional Animation Techniques - Computer Animation Before the advent of computer animation, each animation was done via hand that involves an enormous amount of work. You

What are the features found in CAD, What are the features found in CAD ...

What are the features found in CAD Features generally found in a CAD package involve: - 2D and 3D modelling - Wire frame - Library of parts that can be used in new dra

Transformation for 3-d rotation, Transformation for 3-D Rotation Rotat...

Transformation for 3-D Rotation Rotation in 3-dimensions is considerably more complicated then rotation in 2-dimensions. In 2-Dimentional, a rotation is prescribed via an angl

Explain what the term blocking means in animation, Question 1: (a) Exp...

Question 1: (a) Explain what are Final Gathering and Global Illumination and state why you would use those features when you render in MAYA. (b) List clearly the steps in

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