Carousel (3d animation)

3/5 (22 avis)

Vue 52 998 fois - Téléchargée 5 042 fois

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

Ajouter un commentaire Commentaires
Barbieplugin Messages postés 3 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 5 mai 2009
5 mai 2009 à 09:25
Excuse moi, mais je n'ai que 14 ans et je ne parle pas encore très bien l'anglais...

Quel logiciel dois-je télécherger pour pouvoir ouvrir ton carousel 3d?

Par la suite, pourrais-je le mettre sur un forum ?
cs_Zap Messages postés 78 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 14 août 2010
4 mai 2009 à 22:10
Voir directement sur le forum GDImage qui se trouve ici:
http://www.jose.it-berater.org/smfforum/index.php?board=348.0
Barbieplugin Messages postés 3 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 5 mai 2009
4 mai 2009 à 20:11
VISUAL STUDIO 2005 EXPRESS EDITION n'est pas compatible avec Mac OS, que dois-je télécharger pour voir ton oeuvre?
Serait-il possible de le mettre sur un forum?
Barbieplugin Messages postés 3 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 5 mai 2009
4 mai 2009 à 20:08
Il faut télécharger VISUAL STUDIO 2005 EXPRESS EDITION pour voir ton oeuvre?
Serait-il possible de le mettre sur un forum?
atupac Messages postés 7 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 29 avril 2009
28 avril 2009 à 16:57
Une petie question ZAP. J'ai donc parcouru ton code, et je me demandais pourquoi tu fait appel à la librairie GDImage alors que tu disais ceci:

"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."

C'est koi la difference entre Lib. et composant graphique ???

Merci.
Afficher les 22 commentaires

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.