Re: Solides platoniques – Coordonnées cartésiennes 3d
Réponse n ° 4 – 25 avrile, 2010, 09h18
Je peux maintenant jouer le premier et le dernier solide.
Chrisir 
// si vous utilisez opengl, alors tous les solides platoniques (et plus)
// sont disponibles via glut quand même.
// http://www.cs.duke.edu/courses/fall09/cps124/resources/jogldoc/com/sun/opengl/util/gl2/GLUT.html
// lire http://en.wikipedia.org/wiki/Tetrahedron and related
float x;
float y;
couleur colRed = couleur (255, 0,0);
couleur colVert = couleur (0, 255, 0);
couleur colBlue = couleur (0,0255);
couleur couleur blanche = couleur (255,255,255);
couleur colBlack = couleur (0,0,0);
couleur couleurJaune = couleur (255,255.0);
/ *
float _ = 1,618033;
float __ = 0,618033;
PVector () dodécaèdre =
nouveau PVector (0, __, _),
nouveau PVector (0, __, -_),
nouveau PVector (0, -__, _),
nouveau PVector (0, -__, -_),
nouveau PVector (_, 0, __),
nouveau PVector (_, 0, -__),
nouveau PVector (-_, 0, __),
nouveau PVector (-_, 0, -__),
nouveau PVector (__, _, 0),
nouveau PVector (__, -_, 0),
nouveau PVector (-__, _, 0),
nouveau PVector (-__, -_, 0),
nouveau PVector (1, 1, 1),
nouveau PVector (1, 1, -1),
nouveau PVector (1, -1, 1),
nouveau PVector (1, -1, -1),
nouveau PVector (-1, 1, 1),
nouveau PVector (-1, 1, -1),
nouveau PVector (-1, -1, 1),
nouveau PVector (-1, -1, -1)
;
* /
// tétraèdre
PVector () tétraèdre =
nouveau PVector (1, 1, 1),
nouveau PVector (-1, -1, 1),
nouveau PVector (-1, 1, -1),
nouveau PVector (1, -1, -1);
final int FACES = 12; // nombre de faces
final int VERTICES = 5; // VERTICES par face
flottant final A = 1,618033989; // (1 * sqr (5) / 2) – wikipedia
flottant final B = 0,618033989; // 1 / (1 * sqr (5) / 2) – wikipedia
PVector () vert = nouveau PVector (20); // liste d'apex
int () () faces = new int (FACES) (VERTICES); // liste de faces (jointures de vertex)
// ============================================= ==
configuration invalide ()
taille (1000 700, P3D);
caméra (0.0.10,
0,0,0,
0, 1, 0);
hôte (0) = nouveau PVector (1, 1, 1);
hôte (1) = nouveau PVector (1, 1, -1);
hôte (2) = nouveau PVector (1, -1, 1);
hôte (3) = nouveau PVector (1, -1, -1);
hôte (4) = nouveau PVector (-1, 1, 1);
hôte (5) = nouveau PVector (-1, 1, -1);
hôte (6) = nouveau PVector (-1, -1, 1);
hôte (7) = nouveau PVector (-1, -1, -1);
hôte (8) = nouveau PVector (0, B, A);
hôte (9) = nouveau PVector (0, B, -A);
hôte (10) = nouveau PVector (0, -B, A);
hôte (11) = nouveau PVector (0, -B, -A);
hôte (12) = nouveau PVector (B, A, 0);
hôte (13) = nouveau PVector (B, -A, 0);
hôte (14) = nouveau PVector (-B, A, 0);
hôte (15) = nouveau PVector (-B, -A, 0);
hôte (16) = nouveau PVector (A, 0, B);
hôte (17) = nouveau PVector (A, 0, -B);
hôte (18) = nouveau PVector (-A, 0, B);
hôte (19) = nouveau PVector (-A, 0, -B);
faces (0) = new int ()
0, 16, 2, 10, 8;
faces (1) = new int ()
0, 8, 4, 14, 12;
faces (2) = new int ()
16, 17, 1, 12, 0;
faces (3) = new int ()
1, 9, 11, 3, 17;
faces (4) = new int ()
1, 12, 14, 5, 9;
faces (5) = new int ()
2, 13, 15, 6, 10;
faces (6) = new int ()
13, 3, 17, 16, 2;
faces (7) = new int ()
3, 11, 7, 15, 13;
faces (8) = new int ()
4, 8, 10, 6, 18;
faces (9) = new int ()
14, 5, 19, 18, 4;
faces (10) = new int ()
5, 19, 7, 11, 9;
faces (11) = new int ()
15, 7, 19, 18, 6;
draw invalide ()
fond (0);
accident vasculaire cérébral (255);
tétraèdre ();
chaîne de la mort ();
void tetrahedron ()
pushMatrix ();
traduire (5.5,0,0);
x = carte (souris X, 0, largeur, 0,2 * PI);
rotationY (x);
y = carte (souris Y, 0, hauteur, 0,2 * PI);
rotationX (y);
remplissage (couleur rouge);
ShapeManager (0,1,2);
remplir (vert);
ShapeManager (1,2,3);
remplir (colBlue);
ShapeManager (2,3,0);
remplissage (jaune);
ShapeManager (1.3.0);
popMatrix ();
void ShapeManager (int A, int B, int C)
float p = 1,1;
int i = 0;
beginShape (); // QUAD
i = A;
l'apex (tétraèdre (i) .x * p, tétraèdre (i) .Y * p, tétraèdre (i) .z * p);
i = B;
l'apex (tétraèdre (i) .x * p, tétraèdre (i) .Y * p, tétraèdre (i) .z * p);
i = C;
l'apex (tétraèdre (i) .x * p, tétraèdre (i) .Y * p, tétraèdre (i) .z * p);
endShape (FERMÉ); // FERMER
void dodecahedron ()
pushMatrix ();
x = carte (souris X, 0, largeur, 0,2 * PI);
rotationY (x);
y = carte (souris Y, 0, hauteur, 0,2 * PI);
rotationX (y);
pour (int i = 0; i <FACES; i = i + 1)
remplir (carte (i, 0, faces, 0255));
beginShape ();
pour (int i2 = 0; i2 <VERTICES; i2 = i2 + 1)
sommet (hôte (surface (i) (i2)) x, hôte (surface (i) (i2)) y, hôte (surface (i) (i2)) z …);
// pour
endShape (FERMÉ);
// pour
popMatrix ();
// func
Les robustes de Platon sont des formes qui déterminent partie de la géométrie sacrée. Ils ont d’abord été catalogués par l’ancien philosophe Platon ( d’où leur nom ), bien que des preuves de ces formes les plus magiques aient été trouvées sur la planète entier plus de 1 000 ans avant la documentation de Platon. nIls sont constitués des’Cinq Polyèdres Réguliers Convexes’ : hexaèdre ( cube ), octaèdre ( double pyramide inversée ), tétraèdre ( pyramide ), Icosoèdre et dodécaèdre. Les noms sont dérivés du nombre de côtés de chaque forme : 4, 6, 8, 12 et 20 respectivement. nLes quatre premières formes correspondent aux composants : la terre ( hexaèdre ), l’air ( octaèdre ), le feu ( tétraèdre ) et l’eau ( Icosoèdre ), la cinquième, dodécaèdre, représentant le ciel, l’éther ou l’Univers.

















