POV-Ray, fonctions et tableaux

Outils (comme KPovmodeler ou Terraform par exemple) permettant de créer des images 3D avec POV-Ray sous Linux.
CoucouHibou
Messages : 1
Inscription : 27 sept. 2008, 23:08

POV-Ray, fonctions et tableaux

Message par CoucouHibou »

Bonjour à tous,

comme c'est mon premier message sur ce forum, je me présente en tant qu'utilisateur de POV-Ray pour représenter la physique sur laquelle je travaille.

Sans être franchement débutant, je ne suis pas un utilisateur chevronné non plus, donc peut-être que la réponse à mon problème est très simple.

Alors voilà, je cherche à générer une fonction extrapolée à partir d'un tableau (tridimensionnel) de valeurs.

Pour ce faire, j'extrait les données de mon fichier et le stocke sous forme de tableau, puis je tente de faire une extrapolation de Lagrange par morceaux* (et c'est là le drame) sur des cubes de côté une unité de mon tableau.

Quand je cherche à appeler la valeur (I,J,K) de mon tableau dans ma fonction, j'écris** :

Code : Tout sélectionner

#declare ExtrapFunc=function{

   SpaceSample[floor(x)][floor(y)][floor(z)]

}


Où SpaceSample est le nom du tableau;

Mais là, drame, la console me répond :

Code : Tout sélectionner

SpaceSample[floor(x)
Parse Error: Float expected but vector or color expression found.


Je comprends ce message comme étant « dans les crochets d'indexation du tableau, l'environnement function n'est pas valable », ce qui s'est avéré en spécifiant les paramètres de ma fonction comme étant k, l et m (au lieu des x, y et z par défaut), où je me suis vu répondre que cette fois, on trouvait une variable indéfinie...

Brefle, je ne me démonte pas et tente quelques boucles faisant varier des indices I, J et K et en comparant x, y et z à ces derniers, mais là le test conditionnel #if (I<x) me donne encore le message "Float expected but vector found instead".

Donc il semblerait qu'en écrivant les choses comme je le fais, il y a un problème dû au fait que l'environnement function n'est plus valable à certains endroits. Connaitriez-vous une solution simple à mon problème ?

D'avance merci pour toute aide, cordialement,

Hibou

*oui parce que si je fais tous les polynômes de lagranges en 3D pour des dizaines de milliers de points au minimum, ça va être lourd, et le résultat risque d'être en plus très moche (Lagrange n'est pas la meilleure manitère d'interpoler, je sais, mais elle est relativement simple)

**j'ai appris hier qu'il n'y avait pas besoin de floor pour appeler une valeur dans un tableau, que POV-Ray arrondit tout seul, mais ça ne change pas (beaucoup) le message d'erreur
gRRosminet
Messages : 14
Inscription : 01 déc. 2007, 10:24
Contact :

Message par gRRosminet »

Effectivement, x y et z sont des variables pré-définies : <1,0,0> ; <0,1,0> et <0,0,1> (je crois qu'il y a aussi u et v qui sont comme ca). De plus, tu ne dis pas quels sont les parametres attendus par ta fonction.

Essaye quelque chose comme ca :

Code : Tout sélectionner

#declare ExtrapFunc=function(a,b,c){
   SpaceSample[floor(a)][floor(b)][floor(c)]
}


En espérant que ca résolve ton problème :)
[url=http://nextpe.sf.net]neXtgen Povray Editor[/url]
[url=http://www.lightning-generator.org/newsgroup.php]Communauté Francophone de Povray[/url]
Répondre