Hypercubes

Soyez le premier à donner votre avis sur cette source.

Vue 9 362 fois - Téléchargée 1 205 fois

Description

Ce programme permet de dessiner un hypercube de dimension n quelconque, en utilisant opengl.

Il y a plusieurs modes de rendu, wireframe, lighting, wireframe avec lignes cachées, lighting avec lignes cachées...

Il y a aussi une fonction qui permet d'exporter les sommets calculés dans un fichier *.inc utilisable avec POV-Ray. J'ai aussi mis dans le zip le fichier POV-Ray qui utilise le fichier inc pour dessiner l'hypercube avec de la transparence, un indice de réfraction et une boule de feu au milieu, c'est d'ailleurs la capture que vous pouvez voir ;-)

Source / Exemple :


dans le zip

Conclusion :


J'ai fait un effort: il y a des commentaires détaillés pour une fois ;-)

Quelques remarques:
-les trackbars qui apparaissent lorsqu'on change la dimension permettent de faire pivoter l'hypercube, voire de le déformer si les dimensions correspondantes sont plus grandes que 3.
-le mode "animation" permet de faire varier automatiquement ces angles.
-le bouton "randomize" permet de changer aléatoirement les angles de rotation et leur vitesse en mode animation.
-le dernier boutton enregistre le fichier Vertexes.inc dans le répertoire de l'application, ensuite on peut faire tracer le fichier Hypercube.pov par POV-Ray. Les coordonnées écrites dans le fichier correspondent à ce qu'on voit au moment où l'on clique sur le boutton. Le fichier .pov fourni contient les mêmes paramètres pour la caméra que mon programme. Toutefois, l'image obtenue sera retournée horizontalement, car le système de coordonnées d'Opengl et de POV-Ray sont différents.
-Dans le script Hypercube.pov, la variable n correspond au nombre maximum de récursivité pour les réflections, réfractions... et la variable UseMedia est un booléen pour indiquer si on veut tracer la boule de feu. Si ça va trop lentement pour tracer la scène, on peut diminuer n et mettre UseMedia à zéro, mais ce sera moins joli :-(

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de cs_kalif

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.