[Résolu]Creation de polygones convexe et concave

Outils (comme KPovmodeler ou Terraform par exemple) permettant de créer des images 3D avec POV-Ray sous Linux.
elaum
P'tit timide
P'tit timide
Messages : 3
Inscription : 20 janv. 2006, 19:01
Localisation : Marseille,France
Contact :

[Résolu]Creation de polygones convexe et concave

Message par elaum »

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 : Tout sélectionner

#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
Dernière modification par elaum le 22 janv. 2006, 14:17, modifié 1 fois.

Vincent
P'tit timide
P'tit timide
Messages : 18
Inscription : 16 mars 2005, 01:08

Message par Vincent »

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>...

KiBi
Que quelqu'un le fasse taire!
Que quelqu'un le fasse taire!
Messages : 901
Inscription : 27 déc. 2004, 01:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

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 : Tout sélectionner

#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
}

elaum
P'tit timide
P'tit timide
Messages : 3
Inscription : 20 janv. 2006, 19:01
Localisation : Marseille,France
Contact :

Message par elaum »

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

Pour les petits curieux, essayez de rentrer des valeurs comme :

Code : Tout sélectionner

Polygone(5,3)

Ca permet de voir des polygones concave (comme des pentagrammes pour les non-matheux :wink: )
Dernière modification par elaum le 22 janv. 2006, 14:11, modifié 2 fois.

KiBi
Que quelqu'un le fasse taire!
Que quelqu'un le fasse taire!
Messages : 901
Inscription : 27 déc. 2004, 01:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

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. ;-)

elaum
P'tit timide
P'tit timide
Messages : 3
Inscription : 20 janv. 2006, 19:01
Localisation : Marseille,France
Contact :

Message par elaum »

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

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

KiBi
Que quelqu'un le fasse taire!
Que quelqu'un le fasse taire!
Messages : 901
Inscription : 27 déc. 2004, 01:57
Localisation : Brest, Dijon
Contact :

Message par KiBi »

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

Répondre