Courbes spline pour chemins pour des animations :
Pour faire voler un objet le long d'une courbe spline définie par une spline
par exemple nommée "Spline_1(..)" n'est pas un problème :
Nous employons juste le rapport simple "translate Spline_1(clock)"
Exemple :
sphere{ <0,0,0>, 0.25
texture{
pigment{ color Red}
finish { diffuse 0.9
phong 1}
} // end of texture
translate Spline_1(clock) //<--!!
} // end of sphere ------------- |
|
|
La Macro Spline_Trans made by Rune S. Johansen.
L'orientation des objets le long d'une courbe de spline.
Un problème spécial est l'adaptation de l'orientation d'un
objet à une courbe de spline utilisée comme chemin d'animation.
La question est : Comment pouvons-nous porter un avion sur une courbe
de spline en faisant en sorte que sa rotation corresponde à la bonne direction ?
La solution parfaite à ce problème est apportée par
la macro Spline_Trans faite par Rune S. Johansen.
C'est une fonction de POV-Ray !
Pour l'usage de cette macro nous devons inclure le fichier d'inclusion transforms.inc par :
#include "transforms.inc"
(Note : ceci inclut également "math.inc")
Maintenant nous avons besoin de notre objet volant dont
la direction de vol est définie par la direction +z.
|
|
Syntaxe de cette macro :
(voyez également dans le texte de "transforms.inc" !)
Spline_Trans(NomDeSpline, ValeurDeTemps, Ascendance, Prévoyance, Encaissement)
Spline_Trans(SplineName, TimeValue, Upwards, ForeSight, Banking)
Les paramètres en détails :
NomDeSpline (SplineName) = le nom de la fonction de spline utilisée.
ValeurDeTemps (TimeValue) =
la valeur de temps alimentant à la spline, c'est-à-dire "clock"
Ascendance (Upwards) =
Le vecteur qui est vers le haut dans votre scène, habituellement "y " ou "<0,1,0>.
Prévoyance (ForeSight) =
Une valeur positive qui commande combien à l'avance l'objet tournera et encaissera.
Les valeurs de proches de 0 donnent des résultats précis, alors que des valeurs
plus élevées donnent des résultats plus sans heurt.
Elle n'affectera pas la vitesse de calcul, trouvez juste la valeur qui sera la plus jolie.
Encaissement (Banking) =
De combien l'objet s'incline en tournant. La quantité d'inclinaison est également
beaucoup commandée par la valeur de prévoyance.
Par exemple :
object {My_Object Spline_Trans( My_Spline, clock, y, 0.05, 0.70)} |
|