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

Utility purpose of display processor in the graphic system, Explain the uti...

Explain the utility and purpose of display processor in the graphic system.  The purpose of the display processor is to free the CPU from the graphics chores. A major task of the d

Approaches to area filling - output primitives, Approaches to Area Filling ...

Approaches to Area Filling  Some other approaches to area filling are   Scan line polygon fill algorithm Boundary fill algorithm Flood fill algorithm.

Explain any ten types of artistic filters, Question 1 Explain any ten type...

Question 1 Explain any ten types of artistic filters Question 2 What is Freehand Tool? Explain the procedure of drawing lines and curves with freehand tool Question 3 Ho

Perspective distortion - ray tracing methods , Perspective Distortion - Pol...

Perspective Distortion - Polygon Rendering and Ray Tracing Methods Anomalies are introduced since interpolation is performed after perspective transformation in the 3-D scree

Define clipping, Define clipping and covering (exterior clipping)? Clip...

Define clipping and covering (exterior clipping)? Clipping is the process of cutting a graphics display to neatly fit a predefined graphics region or the view port.  This is

Application of coherence in visible surface detection method, explainapplic...

explainapplication of coherence in visible surface detection method

What is view distance, What is view distance?  The view plane normal ve...

What is view distance?  The view plane normal vector is a directed line segment from the view plane to the view reference point. The length of this directed line segment is ref

Horizontal retrace - display devices, Horizontal retrace - Display Devices ...

Horizontal retrace - Display Devices In a refresh CRT monitor, the time it takes for an electron beam to return to the left most point on the next horizontal line after refresh

Modelling and rendering a surface, Modelling and Rendering a surface Com...

Modelling and Rendering a surface Common practice in modelling and rendering a surface is to approximate it by a polygonal surface.  By a polygonal surface we mean a surface whi

What is the maximum number of objects such can be handled, What is the maxi...

What is the maximum number of objects such can be handled via the depth/z- buffer algorithm? Solution : In z-buffer algorithm, an arbitrary number of objects can be handled sin

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