Carousel (3d animation)

Soyez le premier à donner votre avis sur cette source.

Vue 52 530 fois - Téléchargée 4 995 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
Messages postés
3
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
5 mai 2009

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 ?
Messages postés
78
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
14 août 2010

Voir directement sur le forum GDImage qui se trouve ici:
http://www.jose.it-berater.org/smfforum/index.php?board=348.0
Messages postés
3
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
5 mai 2009

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?
Messages postés
3
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
5 mai 2009

Il faut télécharger VISUAL STUDIO 2005 EXPRESS EDITION pour voir ton oeuvre?
Serait-il possible de le mettre sur un forum?
Messages postés
7
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
29 avril 2009

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.