Carousel (3d animation)

Description

Le projet "Carousel" (en français "Carrousel" avec 2 "r") est inspiré par le menu "Carrousel" de PC-Soft basé sur WPF.
Le premier effet de ce type, a été conçu à l'origine sous forme de plugin flash sur Mac OS.

Le challenge que je voulais relever avec ce projet :
Obtenir un rendu aussi proche que possible de DirectX (WPF) ou d'OpenGL,
en utilisant uniquement du code Win32 FLAT API bas niveau SANS APPEL DIRECT au processeur graphique.

Pour y parvenir je me suis appuyé sur mon composant graphique GDImage,
car celui-ci comportait déjà toutes les primitives nécessaires,
mais il me fallait trouver le bon algorithme mathématique.

Heureusement grâce à Google j'ai trouvé ce que je cherchais,
dans l'excellent article de Keith Peters publié ici :
http://www.bit-101.com/tutorials/3D-rotation.html
et qui est à la base de la méthode "DrawCarousel" qui effectue les calculs 3D nécessaires pour la rotation des sprites.
Cette méthode de calcul est rigoureusement la même pour OpenGL ou DirectX, au cas ou quelqu'un voudrait transposer le code.

De nombreuses classes "maison" sont livrées avec le projet :
- GDImage.cs, encapsulation de l'API GDImage.
- SkinEngine.cs, les différentes méthodes utilisées pour créer l'interface graphique.
- SkinButton.cs, contrôle utilisateur pour les boutons skinnés (bitmap à 5 états).
- SkinCaption.cs, contrôle utilisateur pour l'affichage du caption skinné.
- SkinSwitch.cs, contrôle utilisateur pour les cases à cocher skinnées.
- SkinTrackbar.cs, contrôle utilisateur pour les potentiomètres skinnées.
- Win32.cs, encapsulation de l'API Win32 bas niveau.

A noter, que les boutons simulent un effet de halo au survol de la souris
et que la valeur des potientiomètres est affiché dans un tooltip lors du survol ou du déplacement des curseurs.

Le tout est présenté dans une fenêtre skinnée,
basé sur un gabarit inspiré de Vista et Windows Media Player,
comme vous pouvez le voir dans la capture d'écran.

Le projet est compatible avec VISUAL STUDIO 2005 EXPRESS EDITION

Conclusion :


Concernant GDImage.dll :
L'utilisation à titre privé de la version d'évaluation n'est pas limitée dans le temps et toutes les fonctions sont disponibles.

La seule différence avec la version commerciale, concerne le message de copyright affiché au démarrage.

Patrice Terrier
www.zapsolution.com

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.