Linuxgraphic.org : Les forums
https://www.linuxgraphic.org/forums/

[Résolu]Creation de polygones convexe et concave
https://www.linuxgraphic.org/forums/viewtopic.php?f=9&t=1326
Page 1 sur 1

Auteur:  elaum [ 20 Jan 2006, 19:06 ]
Sujet du message:  [Résolu]Creation de polygones convexe et concave

Bonjour.
J'aimerais faire une macro qui fabriquerais un polygone à partir de deux valeurs en utilisant une rotation (e^(b/a*2*i*pi)).

Mon problème est que l'on ne sait pas à l'avance combien de points vas posséder le polygone.

J'ai déjà fait ça :
Code:
#macro Polygone(NbrPoints,Fraction)
#local Theta = Fraction / NbrPoints * 2 * pi;
prism {
   linear_sweep
   linear_spline
   0,1,NbrPoints,
   #local i = 0;
   #local a = 1;
   #local b = 0;   
   #while (i < NbrPoints)
      <a,0,b>,
      #local a = a*cos(Theta)-b*sin(Theta);
      #local b = b*cos(Theta)+a*sin(Theta);
      #local i = i + 1;
   #end
}

#end
Polygone(5,1)

J'obtient l'erreur Parse Error: UV_Vector expected but vector or color expression found.

Si quelqu'un peu m'aider. :D

Auteur:  Vincent [ 21 Jan 2006, 08:02 ]
Sujet du message: 

Salut !

Une première petite erreur ( il me semble ) : Tu donnes des coordonnées en 3D pour les points du polygones alors que ce sont des coordonnées 2D qui sont prévues <a,b>...

Auteur:  KiBi [ 21 Jan 2006, 08:59 ]
Sujet du message: 

Je ne peux qu'être d'accord avec Vincent. D'ailleurs, je vais peut-être m'installer un povray rien que pour l'occasion. (D'ailleurs, ça fait mon premier élément de non-free, marre de cette licence à la C** de POV-Ray...)

Édition : je viens d'essayer, en utilisant <a,b>, cela fonctionne presque. Le problème est qu'après le dernier élément, il y a aussi une virgule, et la virgule juste avant l'accolade de fin, POV-Ray n'aime pas. Heureureusement, on peut utiliser des vecteurs sans avoir à les séparer par des virgules, il suffit donc de remplacer la ligne initiale par seulement <a,b> et ça semble fonctionner (pas d'erreur de compilation). Je vais maintenant voir ce que ça donne en ajoutant un peu de couleur/texture.

Seconde édition : j'ai un peu modifié le script qui ne faisait apparemment pas ce qu'il faut (avec les a et b dépendant des a et b précédents... je n'ai pas essayé de comprendre exactement ce que tu cherchais à faire, j'ai proposé une solution qui fonctionne). J'ai ajouté le strict minimum permettant de faire un rendu, s'il y a des intéressés dans la salle :

Code:
#macro Polygone(NbrPoints,Fraction)
#local Theta = Fraction / NbrPoints * 2 * pi;
prism {
   linear_sweep
   linear_spline
   0,1,NbrPoints
   #local i = 0;
   #local rayon = .2;
   #while (i < NbrPoints)
      #local X = rayon*cos(Theta*i)-rayon*sin(Theta*i);
      #local Z = rayon*cos(Theta*i)+rayon*sin(Theta*i);
      <X,Z>
      #local i = i + 1;
   #end

   pigment {
    color red 1.0
   }
}

#end
Polygone(5,1)

global_settings {
    assumed_gamma 1.5
}

camera {
    look_at 0
    location 2*y
}

Auteur:  elaum [ 22 Jan 2006, 12:19 ]
Sujet du message: 

Ca marche impec, merci beaucoup !!! :D :D

Pour les petits curieux, essayez de rentrer des valeurs comme :
Code:
Polygone(5,3)

Ca permet de voir des polygones concave (comme des pentagrammes pour les non-matheux :wink: )

Auteur:  KiBi [ 22 Jan 2006, 12:25 ]
Sujet du message: 

Ce serait sympa pour les petits curieux un peu fainéants de mettre une image du rendu, histoire qu'ils se fassent une idée sans avoir à copier/coller le code et/ou installer POV-Ray. ;-)

Auteur:  elaum [ 22 Jan 2006, 12:51 ]
Sujet du message: 

Une copie d'écran du résultat
La page sur les Polygones

Ma page sur POVRay avec mes créations...

Auteur:  KiBi [ 22 Jan 2006, 13:21 ]
Sujet du message: 

Merci beaucoup, c'est sympa pour tous ceux qui ont suivi un peu de loin. :-)

Page 1 sur 1 Heures au format UTC + 1 heure [ Heure d’été ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/