![]() |
Multimedia »
General Graphics »
Image Display
Intermediate
License: The Code Project Open License (CPOL)
A Thumb RotatorBy Massimiliano ConteA fast and furious - one step far from - screensaver application. |
C#, Windows, .NET, Visual Studio, GDI+, Dev
|
|
Advanced Search |
|
|
|
||||||||||||||||
First of all, remember, this is not the best way to make a Thumb Rotator!!! And now, let's see what a Thumb Rotator is. It is a program which tells you where your pictures are, and it will show them by rotating them slowly around an ellipse, pretending they are on a 3D space, simulating a mirror on the floor, using fake lighting algorithms...
In this article, there is no DirectX, OpenGL, or anything like them.
First of all, we will arrange the images around an ellipse. To obtain the - let's say - 10 points, with x0, y0 for the center of the screen, and R1 and R2 as great and little radius (it's an ellipse!):
for (int angle=0; angle<360; angle+=36)
{
double dAngle=DEGREE_TO_RADIANS(angle);
int x=x0+R1*cos(dAngle);
int y=y0-R2*sin(dAngle);
// do something with the x,y - for example, draw the image (scaled!)
}
To animate, simply use a timer. And for every step, add some increment to the angle of every image. Take a look at the code in the zip file!
Two simple tricks: first, draw images from the top Y position to the bottom. In an ellipse-arranged-thumb-rotator, this works fine. Second, draw scaled from the top Y position to the bottom. The images on the top have to be smaller than the images on the bottom.
To draw the shadow/fading/upside-down image on the bottom, simply follow these steps:
Make images on the top darker. Simply draw a black, semi-transparent rectangle on them!!!
Monitor your mouse while it is being moved!. If it's moving near the center, there should be no rotation. When the mouse is on the left, make the rotation from left to right. When the mouse is on the right, make the rotation in the reverse direction.
Every time you draw an image, remember its position. So, when the mouse is moving, you can perform the "hit test". The "under mouse pointer" image has full light, no darker effect on it (remember the previous paragraph).
That's all! Have fun. Remember, this is not the best way to do it, but it works! :)
| You must Sign In to use this message board. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 2 Dec 2008 Editor: Smitha Vijayan |
Copyright 2008 by Massimiliano Conte Everything else Copyright © CodeProject, 1999-2009 Web10 | Advertise on the Code Project |