Projet informatique

  • Initiateur de la discussion Initiateur de la discussion wawa96
  • Date de début Date de début
explique deux secondes pourquoi pour les axes tu as mis box, cylinder?
Voir réponse de farid_h :)
Il y a tout de même une raison.
J'ai mis des box pour X et Y parce que c'est comme un trait de crayon sur une feuille de papier, et un cylindre pour Z parce que c'est l'axe de mon cylindre avant qu'il subisse une rotation et translation.
Commente ces 2 derniers a la fin de mon code et tu comprendra.
Un axe est cylindrique dans ma conception des choses :)
En ce qui concerne savoir si c'est compliqué de faire tourner 2 roues, oui et non :)

J'ai l'impression que pour le moment tu n'a fait que copier/coller du code, et rien essayé e faire par toi même.
C'est en codant qu'on apprend, pas seulement en regardant le code des autres ! :)
Donc oui, pour le moment tu va trouver ça pluton compliqué :)

Un code assez simple, mais pour le comprendre il faut avoir expérimenté avec les torus et les rotate :
http://www.f-lohmueller.de/pov_tut/animate/anim14f.htm

En passant, le code rouedentee5 est bien trop compliqué ... On peut faire pareil avec un simple rotate comme j ai fait avec les cubes rouges.
 

Pièces jointes

  • cone.png
    cone.png
    130.7 KB · Affichages: 3
@wawa96, comme tu ne sembles pas encore avoir compris le principe de base, ca va etre difficile. Meme si le temps presse, il faut que tu comprennes d'abord comment dessiner la roue dentee toi meme. @Nalinux a donne un bon exemple avec le cylindre et les box qui font des trous dans ce cylindre.

Ensuite, quand tu auras compris ca, tu devras comprendre comment faire tourner cette roue autour de l'axe y par un angle arbitraire, disons phi (rotate <0,phi,0>). Puis, quand tu auras compris ca, tu en fais un parametre (rotate <0,phi*clock,0>). Mais t'es pas encore a ce point. Back to the basics, @wawa96, sinon t'es entierement perdu. ;)
 
@wawa96, comme tu ne sembles pas encore avoir compris le principe de base, ca va etre difficile. Meme si le temps presse, il faut que tu comprennes d'abord comment dessiner la roue dentee toi meme. @Nalinux a donne un bon exemple avec le cylindre et les box qui font des trous dans ce cylindre.

Ensuite, quand tu auras compris ca, tu devras comprendre comment faire tourner cette roue autour de l'axe y par un angle arbitraire, disons phi (rotate <0,phi,0>). Puis, quand tu auras compris ca, tu en fais un parametre (rotate <0,phi*clock,0>). Mais t'es pas encore a ce point. Back to the basics, @wawa96, sinon t'es entierement perdu. ;)
bah j'ai deja débuté il faut un fichier Ini et le fameux paramètre clock je suis près à l'utiliser, car la roue dentée je l'ai comprise.
sauf pour le fait de la faire tourner autour de l'axe y ca j'ai pas encore essayer mais tout ce qui a avant je l'ai compris...
Faut être clair j'ai vraiment plus le temps de trainer...
 
Voir réponse de farid_h :)
Il y a tout de même une raison.
J'ai mis des box pour X et Y parce que c'est comme un trait de crayon sur une feuille de papier, et un cylindre pour Z parce que c'est l'axe de mon cylindre avant qu'il subisse une rotation et translation.
Commente ces 2 derniers a la fin de mon code et tu comprendra.
Un axe est cylindrique dans ma conception des choses :)
En ce qui concerne savoir si c'est compliqué de faire tourner 2 roues, oui et non :)

J'ai l'impression que pour le moment tu n'a fait que copier/coller du code, et rien essayé e faire par toi même.
C'est en codant qu'on apprend, pas seulement en regardant le code des autres ! :)
Donc oui, pour le moment tu va trouver ça pluton compliqué :)

Un code assez simple, mais pour le comprendre il faut avoir expérimenté avec les torus et les rotate :
http://www.f-lohmueller.de/pov_tut/animate/anim14f.htm

En passant, le code rouedentee5 est bien trop compliqué ... On peut faire pareil avec un simple rotate comme j ai fait avec les cubes rouges.

We celui de la roue dentée complexe j'ai trouvé sur internet le code puis j'ai modifié au debut ca ressemblait pas du tout à ça, ce serait dommage que je ne leur montre pas cette roue car elle est très interessante.
C'est en chipotant dans le code qu'on comprend.
la nouvelle roue que tu as utilisé je l'ai comprise puisque elle est beaucoup plus simple et la syntaxe est trop basique.
 
Bon vous avez assez raison je viens de relire le code ya pas encore tout qui est clair dans ma tete

je voudrais mettre un cylindre au centre de ma roue avec difference { pour faire un trou, c'est chaud pour les coordonnées je sais pas comment trouver les bons coordonnées si ce n'est taper des chiffres jusqu'à se rapprocher vers ce qui nous va.

et @Nalinux est ce tu peux m'expliquer ton code de "declare roue dentée jusqu'à #end merci.
là où il y a ton while.
 
Code:
#declare Nbre=0;  // depart du comptage des dents
#declare Nbre_De_Dents=9;  // nombre de dents voulu

union {  // Union pour  mieux voir
#while (Nbre < Nbre_De_Dents)  // Boucle #while
  cylinder { <0,0,0>  <0,0.5,0> 2
  }  
  box { <-0.5,-0.1,1.5>   <0.5,0.6,2.5>  
  rotate<0,Nbre* 360/Nbre_De_Dents,0>  // A chaque dent, on fait tourner la boite autour
  // de l'axe des Y
  pigment { Red } // En couleur pour visualiser 
  
  }
  #declare Nbre = Nbre + 1;
#end
}

@wawa96, tu connais les boucles while, par ex. chez C ou Java? Ici, c'est pareil.

Nalinux cree d'abord une union, puis place dans cette union Nbre_De_Dents fois 1/ un cylindre, 2/ un cube; puis il fait tourner le cube autour de l'axe y avec le rotate. La variable Nbre va de 0 a Nbre_De_Dents-1 (c.a.d de 0 a 8; d'ou 9 iterations en total) a chaque iteration de la boucle comprise entre #while et #end.

L'angle de rotation phi entre deux dents est 360/Nbre_De_Dents. La premiere dent est a l'angle 0*phi, la deuxieme a l'angle 1*phi, la 3eme a l'angle 2*phi etc... en general l'angle est donc Nbre*phi avec Nbre de 0, 1, 2, ..., 8.

La rotation se fait autour de l'axe perpendiculaire y, d'ou la formule rotate <0, Nbre*phi, 0> (avec phi etant 360/9)

@Nalinux, tu ne penses pas que c'est mieux de mettre le cylindre en dehors de la boucle?

Code:
union {
    cylinder { ... }
    #while ...
        box { ...
            rotate <0,...,0>
            ...
        }
        ...
    #end
}
 
Dernière édition:
et @Nalinux est ce tu peux m'expliquer ton code de "declare roue dentée jusqu'à #end merci.
là où il y a ton while.
Le principe est simple !
Je fait l'union entre le cylindre et la box, tourne le cylindre autour de l'axe Z, puis repete l'opération jusqu'a avoir fait le tour.
Je ne vois pas comment commenter davantage que je n'ai déja fait ...

Code:
#declare Roue_Dentee =  // On déclare le résultat comme un objet
#declare Nbre=0;  // depart du comptage des dents
#declare Nbre_De_Dents=9;  // nombre de dents voulu
 
union {  // Union pour  mieux voir
#while (Nbre < Nbre_De_Dents)  // Boucle #while
  cylinder { <0,0,0>  <0,0.5,0> 2  // cylindre de départ
  }  
  box { <-0.5,-0.1,1.5>  <0.5,0.6,2.5>  
  rotate<0,Nbre* 360/Nbre_De_Dents,0>  // A chaque dent, on fait tourner la boite autour
  // de l'axe des Y
  pigment { Red } // En couleur pour visualiser
    }
  #declare Nbre = Nbre + 1;
  #end
 
Le principe est simple !
Je fait l'union entre le cylindre et la box, tourne le cylindre autour de l'axe Z, puis repete l'opération jusqu'a avoir fait le tour.
Je ne vois pas comment commenter davantage que je n'ai déja fait ...

Code:
#declare Roue_Dentee =  // On déclare le résultat comme un objet
#declare Nbre=0;  // depart du comptage des dents
#declare Nbre_De_Dents=9;  // nombre de dents voulu
 
union {  // Union pour  mieux voir
#while (Nbre < Nbre_De_Dents)  // Boucle #while
  cylinder { <0,0,0>  <0,0.5,0> 2  // cylindre de départ
  }  
  box { <-0.5,-0.1,1.5>  <0.5,0.6,2.5>  
  rotate<0,Nbre* 360/Nbre_De_Dents,0>  // A chaque dent, on fait tourner la boite autour
  // de l'axe des Y
  pigment { Red } // En couleur pour visualiser
    }
  #declare Nbre = Nbre + 1;
  #end

>....................
 
Attendez donc il fait l'union du cylindre et d'une boite il fait tourner le cylindre ou la boite je comprend plus rien, il fait tourner le cylindre pour avoir les autres boites ?

autour de quel axe?
 
Attendez donc il fait l'union du cylindre et d'une boite il fait tourner le cylindre ou la boite je comprend plus rien, il fait tourner le cylindre pour avoir les autres boites ?

autour de quel axe?
D'apres le code, il dessine 9 cylindres, tous a la meme position. Mais il ne les fait pas tourner. Ce qu'il fait tourner, c'est les cubes:

Code:
box { <-0.5,-0.1,1.5>  <0.5,0.6,2.5>  
      rotate<0,Nbre* 360/Nbre_De_Dents,0>  // A chaque dent, on fait tourner la boite autour
      // de l'axe des Y
      pigment { Red } // En couleur pour visualiser
}

Tu vois que l'instruction rotate <> se trouve a l'interieur du block box { ... }; c'est a dire qu'elle s'applique uniquement a ce block, c.a.d. au cube.

La rotation se fait autour de l'axe y. La syntaxe generale est:

Code:
rotate <angle-par-rapport-a-l'axe-de-rotation-x,
            angle-par-rapport-a-l'axe-de-rotation-y,
            angle-par-rapport-a-l'axe-de-rotation-z>

Comme il fait tourner le cube autour de l'axe y, c'est la qu'il met l'angle de rotation. Les autres angles de rotations sont 0. C'est a dire: rotate<0, phi*Nbre, 0>.

Ce qu'il fait en plus, a la fin du programme, c'est ca:

Code:
object { Roue_Dentee  // On met l'objet "Roue_Dentee" la ou on veut
  rotate< 0, 0, 90 >  // rotation pour la mettre verticale
  translate<-1,2.4,2>  // et tu la met ou tu veux
}

Ca veut dire qu'il dessine la roue dentee (avec la boucle #while etc...); et cette roue dentee, il la tourne autour de l'axe z a 90 degres, pour qu'elle soit deboue: rotate<0,0,90>. Cette roue dentee, il la pousse un peu vers la gauche (-1), vers le haut (2.4) et l'eloigne un peu (2) avec translate<-1, 2.4, 2>.

Ce qu'il faut comprendre: le code pour dessiner la roue dentee n'est qu'une procedure/fonction; il n'est execute que lorsqu'on invoque object { Roue_Dentee ... }. Ou, pour le dire autrement: il programme une function qui cree une union de cylindre et de cubes qu'il appelle Roue_Dentee; et avec object { Roue_Dentee ... }, il l'execute, c.a.d. qu'il dessine cette union concretement. Cette union de cylindre et de cubes, il la fait tourner autour de l'axe z a 90 degres.

Une autre chose qui n'est pas claire pour toi: le code entre #while et #end est execute 9 fois; c'est une boucle! Et comme il est execute 9 fois, ca veut dire qu'il cree 9 cylindres (tous a la meme place), et 9 cubes. Chaque cube est tourne autour de l'axe y par un angle different: 0*phi, 1*phi, 2*phi, ..., 8*phi; c'est pour ca que tu les vois tous autour du (des) cylindes.

La ou il y a une erreur: ce n'est pas necessaire de dessiner 9 cylindres, tous a la meme place. Comme j'ai explique, il aurait pu dessiner un seul cylindre et 9 boxes comme ca:

Code:
union {
    cylinder { ... }
    #while (....)
        box { ... rotate <...> pigment <...> }
        ...
    #end
}

Dans ce cas, seul un cylindre est dessine, puis, a l'interieur de la boucle #while, 9 cubes (box) sont dessines, et tournes autour de l'axe y puis colories rouge.
 
Dernière édition:
Et c'est quoi phi? Et pour ce qui est de tourner la boite autour de l'axe des y, que voulez vous dire par tourner autour de l'axe y comment tu visualises ça? j'arrive pas

Oui je ne voyais pas l'utilité de créer 9 cylindre à la meme place alors je comprend ta remarque qui est de sortir le cylindre de while OK merci
 
Et c'est quoi phi? Et pour ce qui est de tourner la boite autour de l'axe des y, que voulez vous dire par tourner autour de l'axe y comment tu visualises ça? j'arrive pas

phi, c'est 360/9, ou ecrit plus long: 360/Nbre_De_Dents. C'est l'angle entre deux dents voisines.

Pour la deuxieme question, c'est utile de visualiser ca en 2 dimensions au lieu de 3 dimensions. Supposes que tu ais une feuille de papier. Sur cette feuille, tu dessines d'abord un systeme de coordonnees x-z: un axe x horizontal qui pointe vers la droite, un axe z vertical qui pointe vers le haut. Maintenant, imagines toi que tu veux dessiner 9 carres autour du point central <0,0>; semblable aux boites autour du centre de la dent. Comment tu fais?

Tu commences par tracer un cercle d'un radius de 1.0 unites autour du centre (c.a.d. un cercle avec un diametre de 2.0 unites). L'intersection de ce cercle d'unite avec l'axe x positive est le point <1.0, 0>. A ce point la, tu mets un carre. Okay? Bon. C'est le carre le plus a droite.

Maintenant tu dessines une demi-ligne du point central <0,0> vers l'exterieur, tel que l'angle entre l'axe x et cette demi-ligne (contre le sense de la montre) est 1*(360/9) degres, soit 40 degres. La ou cette ligne croise le cercle, tu places un autre carre, legerement tourne. Ca, c'est le 2eme carre.

Puis tu continues: tu traces une nouvelle ligne de <0,0> vers l'exterieur, tel que l'angle entre l'axe x et cette ligne (contre le sense de la montre) est maintenant 2*(360/9) degres, soit 80 degres. La ou cette ligne croise le cercle, tu places un nouveau carre, un peu plus tourne que le carre precedent. Ca, c'est le 3eme carre.

Tu repetes la procedure jusqu'a ce que tu as place en tout 9 carres autour du point central.

C'est exactement ca ce qui ce passe dans le programme: 9 fois de suite, tu dessines une boite a la meme position que la position de la 1ere boite, puis tu la tournes d'un certain angle autour du point central. Tu decris avec ces 9 boites un cercle autour du point central. Comme c'est en 3 dimensions, tu decris un cercle autour de l'axe y (dessine eu bleu dans l'image de Nalinux). Imagines toi l'axe y comme etant perpendiculaire a la feuille de papier avec ses axes x-z.
 
Dernière édition:
phi, c'est 360/9, ou ecrit plus long: 360/Nbre_De_Dents. C'est l'angle entre deux dents voisines.

Pour la deuxieme question, c'est utile de visualiser ca en 2 dimensions au lieu de 3 dimensions. Supposes que tu ais une feuille de papier. Sur cette feuille, tu dessines d'abord un systeme de coordonnees x-y: un axe x horizontal qui pointe vers la droite, un axe y vertical qui pointe vers le haut. Maintenant, imagines toi que tu veux dessiner 9 carres autour du point central <0,0>; semblable aux boites autour du centre de la dent. Comment tu fais?

Tu commences par tracer un cercle d'un radius de 1.0 unites autour du centre (c.a.d. un cercle avec un diametre de 2.0 unites). L'intersection de ce cercle d'unite avec l'axe x positive est le point <1.0, 0>. A ce point la, tu mets un carre. Okay? Bon. C'est le carre le plus a droite.

Maintenant tu dessines une demi-ligne du point central <0,0> vers l'exterieur, tel que l'angle entre l'axe x et cette demi-ligne (contre le sense de la montre) est 1*(360/9) degres, soit 40 degres. La ou cette ligne croise le cercle, tu places un autre carre, legerement tourne. Ca, c'est le 2eme carre.

Puis tu continues: tu traces une nouvelle ligne de <0,0> vers l'exterieur, tel que l'angle entre l'axe x et cette ligne (contre le sense de la montre) est maintenant 2*(360/9) degres, soit 80 degres. La ou cette ligne croise le cercle, tu places un nouveau carre, un peu plus tourne que le carre precedent. Ca, c'est le 3eme carre.

Tu repetes la procedure jusqu'a ce que tu as place en tout 9 carres autour du point central.

C'est exactement ca ce qui ce passe dans le programme: 9 fois de suite, tu dessines une boite a la meme position que la position de la 1ere boite, puis tu la tournes d'un certain angle autour du point central. Tu decris avec ces 9 boites un cercle autour du point central. Comme c'est en 3 dimensions, tu decris un cercle autour de l'axe y (dessine eu bleu dans l'image de Nalinux).
Comment ca se fait que lorsqu'on fait la rotation de ces carrés, il n y a que le point y qui change, les deux autres valent 0? il ne devrait pas y avoir des valeurs pour z?
 
Comment ca se fait que lorsqu'on fait la rotation de ces carrés, il n y a que le point y qui change, les deux autres valent 0? il ne devrait pas y avoir des valeurs pour z?
Parce que tu fais la rotation autour de l'axe y. Tu ne fais pas de rotation des cubes autour de l'axe x ou de l'axe z. Avec rotate <x,y,z>, on peut en principe faire 3 rotations simultanees autour des trois axes de rotation. Mais dans le cas des cubes qui sont uniquement tournes autour de l'axe y, c'est pas besoin de les tourner autour des autres axes. Ceci dit, experimentes un peu! Essayes par ex. de faire: "rotate <-45, Nbre* 360/Nbre_De_Dents, 0>"; tu verras ce qu'une rotation du boxe de -45 degres autour de l'axe x fait comme effet! :) Fais aussi "rotate <0, Nbre*360/Nbre_De_Dents, 45>" pour voir l'effet d'une rotation de 45 degres autour de l'axe z.

Edit: Tu peux visualiser plus facilement, si tu commentes la rotation verticale finale comme ca a la fin du programme:

Code:
object { Roue_Dentee  // On met l'objet "Roue_Dentee" la ou on veut
  // rotate< 0, 0, 90 >  // rotation pour la mettre verticale
  // translate<-1,2.4,2>  // et tu la met ou tu veux
}

Et maintenant, tu ajoutes l'angle de 45 degres comme montre plus haut!
 
Dernière édition:
Parce que tu fais la rotation autour de l'axe y. Tu ne fais pas de rotation des cubes autour de l'axe x ou de l'axe z. Avec rotate <x,y,z>, on peut en principe faire 3 rotations simultanees autour des trois axes de rotation. Mais dans le cas des cubes qui sont uniquement tournes autour de l'axe y, c'est pas besoin de les tourner autour des autres axes. Ceci dit, experimentes un peu! Essayes par ex. de faire: "rotate <45, Nbre* 360/Nbre_De_Dents, 0>"; tu verras ce qu'une rotation du boxe de 45 degres autour de l'axe x fait comme effet! :) Fais aussi "rotate <0, Nbre*360/Nbre_De_Dents, 45>" pour voir l'effet d'une rotation de 45 degres autour de l'axe z.
En effet quand je touche à la valeur de y, les boites remontent et quand je touche à l'axe des x par exemple elles vont vers la gauche ou vers la droit, horizontalement;
le concept de rotate signifie quoi exactement quand on l'applique à ces boites?
 
En effet quand je touche à la valeur de y, les boites remontent et quand je touche à l'axe des x par exemple elles vont vers la gauche ou vers la droit, horizontalement;
le concept de rotate signifie quoi exactement quand on l'applique à ces boites?
T'as essaye la derniere modification que j'ai ajoute au poste?

Le concepte de rotate applique a une boite signifie qu'on prend toute la boite, et qu'on la tourne autour d'un ou plusieurs axes. Si tu dis rotate <-45,0,0>, tu tournes la boite d'un angle de -45 degres autour de l'axe x. Si tu dis rotate <0,45,0>, tu tournes la boite d'un angle de 45 degres autour de l'axe y. Si tu dis rotate <0,0,45>, tu la tournes d'un angle de 45 degres autour de l'axe z. Si tu dis rotate <10,20,30>, tu la tournes d'un angle de 10 degres autour de l'axe x, tu la tourne de 20 degres autour de l'axe y, et tu la tournes de 30 degres autour de l'axe z.
 
Voici le code actuel, avec l'image correspondente:

La rotation de chaque boite:

Code:
  rotate<-45, Nbre* 360/Nbre_De_Dents, 0>

Et le code pour dessiner la roue dentee sans la mettre debout:

Code:
object { Roue_Dentee  // On met l'objet "Roue_Dentee" la ou on veut
  // rotate< 0, 0, 90 >  // rotation pour la mettre verticale
  // translate<-1,2.4,2>  // et tu la met ou tu veux
}

Ce que tu vois dans l'image, c'est que chaque boite est tournee de 45 degres dans le sense de la montre (soit -45 degres dans le sense contraire de la montre qui est la direction normale) autour de l'axe x.
 

Pièces jointes

  • nalinux2.txt
    nalinux2.txt
    1.8 KB · Affichages: 1
  • nalinux2.png
    nalinux2.png
    105.6 KB · Affichages: 3
Mais quand je change la valeur y , je ne vois aucun rapport avec l'axe vertical y
j'ai mis pour y: nbre*240/nbre_dent
 

Pièces jointes

  • cone.png
    cone.png
    88.9 KB · Affichages: 3
Tu vois, pour chaque object, on fait ca:

1/ On place l'objet soit au centre (cylindre), soit par ex. au bord du cylindre (box).
2/ On fait tourner cet objet autour d'un axe (box: autour de l'axe y, autour de l'axe x)
3/ Si necessaire, ou pousse ensuite l'objet ailleurs avec translate.

Je pense que tu commences a t'habituer au concept general. Tu fais des progres! :)
 
Tu vois, pour chaque object, on fait ca:

1/ On place l'objet soit au centre (cylindre), soit par ex. au bord du cylindre (box).
2/ On fait tourner cet objet autour d'un axe (box: autour de l'axe y, autour de l'axe x)
3/ Si necessaire, ou pousse ensuite l'objet ailleurs avec translate.

Je pense que tu commences a t'habituer au concept general. Tu fais des progres! :)
Mercii c'est gentil de consacré du temps pour me faire comprendre mdr
 
Mais quand je change la valeur y , je ne vois aucun rapport avec l'axe vertical y
j'ai mis pour y: nbre*240/nbre_dent
C'est facile de comprendre l'image qui en resulte: maintenant, l'angle entre deux dents n'est plus 40 degres (360/9), il n'est plus que 26 degres. Les dents sont plus proches les unes des autres, et laissent a la fin une grande lacune de 360-240 = 120 degres. Tu vois cette lacune?
 
C'est facile de comprendre l'image qui en resulte: maintenant, l'angle entre deux dents n'est plus 40 degres (360/9), il n'est plus que 26 degres. Les dents sont plus proches les unes des autres, et laissent a la fin une grande lacune de 360-240 = 120 degres. Tu vois cette lacune?
Donc en fait ce que je suis comprendre de puis tout à l'heure c'est que le fameux angle autour de l'axe des y, il s'agit de l'angle entre les boites???:claque:
 
Oui, c'est exactement ca!
haha que je suis bete, c'est clair qu'avec ce fameux object{..... rotate <0,0,90> utilisé pour mettre la roue verticalement ne me facilitait pas la compréhension.
Mais pourquoi c'est autour de z qu'on fait une rotation de 90 et pas celui des y, je veux dire on veut la placer verticalement pourquoi il faut partir de l'axe z, ca c'est encore floue
 
haha que je suis bete, c'est clair qu'avec ce fameux object{..... rotate <0,0,90> utilisé pour mettre la roue verticalement ne me facilitait pas la compréhension.
Mais pourquoi c'est autour de z qu'on fait une rotation de 90 et pas celui des y, je veux dire on veut la placer verticalement pourquoi il faut partir de l'axe z, ca c'est encore floue
Experimentes! Remplaces rotate< 0, 0, 90 > par rotate <0, 90, 0>, et regardes ce que ca donne. Remplaces ensuite rotate <0, 0, 90> par rotate <90, 0, 0>, et regardes le resultat. Puis essayes de comprendre...
 
Experimentes! Remplaces rotate< 0, 0, 90 > par rotate <0, 90, 0>, et regardes ce que ca donne. Remplaces ensuite rotate <0, 0, 90> par rotate <90, 0, 0>, et regardes le resultat. Puis essayes de comprendre...
j'ai essayé, en quelques sortes on fait tourné de 90 degré la roue de l'axe z vers l'axe y?
 
Okay, j'explique. Rappelles toi comment le systeme de coordonnee est oriente:

POV-Ray: Documentation: 1.2.1.1 Understanding POV-Ray's Coordinate System

L'axe z est perpendiculaire a ton ecran. Imagines toi maintenant la roue couchee devant toi sur la table devant l'ecran. Si tu la prends, et tu la tournes autour de l'axe x avec rotate <90,0,0>, elle sera parallele a l'ecran, n'est-ce pas? Tu comprends donc l'image qui en resulte?

Si par contre, tu prends cette roue, et tu la tournes a 90 degres autour de l'axe vertical y avec rotate <0,90,0>, rien ne changera. C'est comme si tu la tournais autour de son axe de rotation central. Peut etre que les dents auront une autre position, mais le cylindre ne changera pas vraiment d'orientation (a part la texture).

Si maintenant, tu tournes cette route autour de l'axe z qui est perpendiculaire a ton ecran avec rotate <0,0,90>, la roue se mettera debut et tu la verras comme dans l'exemple primaire de Nalinux (lui, il l'a un peu pousse a gauche avec translate, pour qu'on ne voit pas directement sur les dents).

Edit: Essayes aussi une rotation avec un autre angle que 90.
 
Retour
Haut