traj


trajectoire

Principe
Trajectoires encapsulées
Trajectoire d´objet
Trajectoires de propriété d´objet

       aim        animate        axis
       back
       col        col col
       dila        dilx        dily        dilz        dim
       eye
       foc        fog        force        force rota        func
       hom
       illum        interpol
       mass
       name       
       objet func        options
       period
       quat        quat_rota
       rota        (rota axis)        rotx        roty        rotz
       texture        tran        transp
       validate
       var


Options
back
image
Lumière
Rayon
trajectoire de trajectoire
vertex
Vue
Exemples
Voir aussi

Principe

Toutes les propriétés de tous les objets d´anyflo peuvent être animés par des trajectoires qui contiennent les listes des variations de ces propriétés dans le temps, il s´agit là d´animation cinématique. Une autre méthode d´animation, dite dynamique, consiste à définir ces propriétés dans le temps au moyen des équations différentielles de la dynamique, mais, même dans ce cas, on peut définir des trajectoires de type cinématiques sur certains paramètres de la dynamique (masses, forces, couples, ressorts, etc..).

Il y a 2 façons de définir des trajectoires sur un objet:

Trajectoire encapsuléeacute;e
Objet trajectoire.

Trajectoires encapsulées

Syntaxe générale de création
Exemples
Syntaxe générale de consultation

Syntaxe générale de création

Transformation d´objet:
traj(ni)transf(p)obj(id);
       ni: est le nombre d´images.
       transf: est une
transformation
       p: est une liste de paramètres clés de la transformation.
       obj(id): est l´objet de type obj et d´identificateur id.

Transformation de propriété d´objet:
traj(ni)propr(p)obj(id);
       propr: est une propriété de l´objet id.
Remarques:
la propriété propr doit avoir avoit été initialisée pour l´objet obj(id).
si ni=ni1,ni2 ni = rand2(ni1,ni2).

Exemples

traj(6)tran(0,0,0, 200,100,0)vol(1);
edit(traj tran vol(1));
imprime:
       0.0 0.0 0.0
       40.0 20.0 0.0
       80.0 40.0 0.0
       120.0 60.0 0.0
       160.0 80.0 0.0
       200.0 100.0 0.0

traj(6)radius(6,8, 12,14)brush(1);
edit(traj radius brush(1));
imprime:
       0.0 6.0 8.0
       0.2 7.2 9.2
       0.4 8.4 10.4
       0.6 9.6 8.0
       0.8 10.8 12.0
       1.0 12.0 14.0
La 1ère colonne est le numéro de l´image (normalisé entre 0.0 et 1.0)
La 2ème et la 3ème colonne sont les rayons.

col vertex(2)vol(1)=1,.4,.2;
col vertex(2)vol(1);
imprime:
       1.0 0.4 0.2

traj(6)tran(0,0,0,100,200,300)vertex(1)vol(1)abs(2)period(-1); edit traj vertex vol(1);
imprime:
tran vertex(1)ni=6 cpt=0 period=-1
tran(1,6)
var tran(1,18)
edit traj vertex vol(1);
imprime:
tran vertex(1)ni=6 cpt=0 period=-1
tran(0,0,0,100,200,300)
var tran(0,0,0, 20,40,60, 40,80,120, 60,120,180, 80,160,240, 100,200,300);

L1=-200,-200,-200, 200,0,200;L2=-1000,-1000,-1000, 1000,500,200;
traj(6)limit(L1,L2)tran vol(1)abs;
edit(2)traj limit tran vol(1);

imprime:
       -200,-200,-200,200,0,200
       -360,-2160,-360,"60,100,200
       -520,-4120,-520,520,200,200
       -680,-6080,-680,680,300,200
       -840,-8040,-840,840,400,200
       -1000,-1000,-1000,1000,500,200

Syntaxe générale de consultation

Transformation d´objet:
traj transf obj(id);
       Retourne la trajectoire de type transf (ou de proprié:té propr) de l´objet id.
Cas particuliers:
1) traj rota vol(id); retourne une ligne 3D de la forme:
xi,ai,0 avec xi dans [0,1] et ai = angle (en degrés).
Pour imprimer cette trajectoire en radians, faire:
edit((1,PI/180,1)*(traj rota vol(id)));.
2) traj quat vol(id); retourne une ligne 4D (de quaternions) de la forme:
wi,xi,yi,zi.
Pour l´imprimer, faire:
edit(traj quat vol(id))format(4);
Transformation de propriété d´objet:
traj propr obj(id);
       Retourne la trajectoire de proprié:té propr) de l´objet id.

Object trajectory

objet de type trajectoire
associé à un objet
animate
dim
NP
var

traj(id)T

Définit la trajectoire id de type T.
Exemple: traj func.

traj obj(id1)=id2

Attache la trajectoire id12 à l´objet obj(id1).
En tant qu´objet général d´anyflo les trajectoires peuvent être animées.

traj(id)animate(ni)type1(p1) type2(p2) ... opt1(o1) opt2(o2) ...

Définit l´objet d´identificateur id et de type traj avec une durée de ni à l´order 1.

traj(id)animate(ni,n)type1(p1) type2(p2) ... opt1(o1) opt2(o2) ...

Définit l´objet d´identificateur id, de type traj avec une durée de ni images à l´order n: une telle trajectoire sera incrémentée chaque fois qu´une trajectoire d´ordre n-1 se termine.

traj animate vol(id1)

retourne l´identificateur de la trajectoire associée au volume id1.

traj animate vol(id1)=id2

changes cet identificateur.
Remarque: la trajectoire id2doit être:
traj(id2)animate(ni,n)P(p1,p2,...)...;

Increment

Chaque fois que les trajectoires d´ordre n se terminent les trajectoires d´ordre n+1 sont incrémentées.

Exemple:
Voir dans le ichier demo1_traj.func la fonction:
GEN_TRAJ_TRAJ()
{
#include "externes()"
       ni=Ni[2];interaction screen(ni);
/* Property trajectories order 0 */
       an=PI*rand2f(-1,1);r=.5*(1+cos(an));v=.5*(1+sin(an));b=.5*(r+v);
       EXEC="traj(ni)col(r,v,b, v,b,r, b,r,v)vol(1)abs(2)period(1)law(Loi);\n";
       EXEC,="traj(ni+1)rotz(-an,an)vol(1)abs(2)period(1)law(Loi);\n";
/* Object trajectory order 1 */
       EXEC,="traj animate vol(1)=1;\n";
       p=gen_p();
       EXEC,="traj(1)animate(ni,1)tran(p)abs(2)period(1)ext(5,1);\n";
/* Object trajectory order 2 */
       EXEC,="traj animate traj(1)=2;\n";
       p=gen_p();
       EXEC,="traj(2)animate(ni,2)tran(p)abs(2)ext(5,1)period(-1);\n";
       EXEC=compile message(EXEC);
}

traj (id)dim

Retourne le nombre d´images de la trajectoire id.

traj (id)NP

Retourne le numéro de l´image courante de la trajectoire id.

traj(id)var

       Retourne la liste 3D (x1,y1,z1, x2,y2,z2, ..., xni, yni, zni) des valeurs de la trajectoire id selon le type:
rota, rotx, roty, rotz, hom: xi dans [0.0,1.0], yi=valeur à l´image i, zi=0.
autres: liste des vecteurs aux images 1, 2, ...,ni.

var propr traj(id)

       Retourne la liste 3D (x1,y1,z1, x2,y2,z2, ..., xni, yni, zni) de la propriété propr de la trajectoire id, propr est:
col ou transp pour une trajectoire de type name associée à une image.
Options:
propr(0): première référence de (default).
propr(1): seconde référence de propr.

traj obj(id2)=id1

       Affecte la trajectoire id1 à léobjet
obj d´identificateur id2.
typei peut être une transformation géométrique et/ou une propriété.
opti(pi) est une option de paramètre pi.
obj est un objet standad d´anyflo.
Une transformation peut avoit des types secondaires, par exemple
rota(r) force(c).
Ces trajectoires id1 sont des propriétés d´objet permettant de modifier dans le temps les matrices des objets id2 (en affectant les paramètres des transformations linéaires: translation, dilatation, rotation) et donc d´animer ces objets:
traj(id1)animate((ni)T(p)
       ni est la durée.
       T est une transformation linéaire (tran,dila,dilx,dily,dilz,rota,rotx,roty,rotz,axis) ou quat, p est la liste des vecreurs paramètres de cette transformation.
      
Examples:
traj(1)animate(100)tran(-200,0,0, 200,0,0);
traj(2)animate(50)rota(-PI,PI)vol(1)period(-1);
traj vol(1)=1,2;

       Le volume 1 se déplacere le long du segment (-200,0,0, 200,0,0) pendant 100 images et tournera pendant entre -PI et PI pendant 50 images.
Les trajectoires peuvent être définies sur certains sommets ou d´autres propriétés d´un objet property.

Options permettent de définir une cinématique (mouvement non linéaire), de faire des trajectoires périodiques, des interruptions, etc..

Type de trajectoire

traj typei obj(id)
       Retourne la liste des vecteurs de la trajectoire de type typei de l´objet id.
traj typei dim obj(id)
       Retourne la durée de la trajectoire de type typei de l´objet id.

Trajectoires de propriété d´objet

Ce sont des propriétés d´objets permettant de modifier dans le temps certains paramètres de ces objets et donc de les animer:

traj(ni)P(p)obj(id)

       ni est la durée.
       P est une propriété, p est la liste des vecteurs paramètres de cette propriété.
       id = identificateur de l´objet obj.

Certaines trajectoires ont un type multiple comme traj force rota, dans ce cas les paramètres utilisés pour les construire sont accessibles par:
force traj force rota vol(id); pour les coefficients de force.
rota traj force rota vol(id); pour les angles de rotation. aim        axis        col        col col
dila        dilx        dily      &nbs p; dilz
force        force rota        func
hom
illum        interpol
mass
quat        quat_rota
rota        rotx        roty        rotz
texture        tran        transp

traj(ni)axis(x1,y1,z1, x2,y2,z2, ...)vol(id)

traj(ni)col(r1,v1,b1, r2,v2,b2, ...)vol(id)


Option:
matrix(n): nombre de composantes d´un vecteur (1 par défaut).
Exemple:
traj(ni)col(r11,v11,b11,r12,v12,b12, r21,v2&,b21,r2,v22,b22, ...)vol(id)matrix(2)
permet de faire varier (r1,g1,b1,r2,g2,b2).

traj(ni)col(r11,g11,b11, r12,g12,b12, ...)col(r21,g21,b21, r22,g22,b22, ...)vertex(v)brush(id)


Permet de faire varier (r1,g1,b1, r2,g2,b2) couleurs au centre et au bord du sommet v du pinceau id.

traj(ni)illum(ref1,spe1,bri1, ref2,spe2,bri2,...)vol(id)

traj(ni)illum(ref1,spe1,bri1, ref2,spe2,bri2,...)vertex(v)vol(id)

traj(ni)tran(x1,y1,z1, x2,y2,z2,...)vol(id)

traj(ni)dila(x1,y1,z1, x2,y2,z2,...)vol(id)

traj(ni)dilx(c1,c2,...)vol(id)

traj(ni)dily(c1,c2,...)vol(id)

traj(ni)dilz(c1,c2,...)vol(id)

foc

foc light

foc view

traj(ni)fog(r,g,b)zbuf(z11,z12, z21,z22, ...)

Construit une trajectoire de brouillard fog(r,g,b)zbuf(z1,z2).

traj(ni)force(x1,y1,z1, x2,y2,z2,...)vol(id)

traj(ni)force(f1,v1,0, f2,v2,0, ...)rota(a1,a2,...)vol(id)

       Les angles ai sont atteints avec une force rota d´amplitude f (f=.1, v=-.01 sont de bonnes valeurs) de viscosit&eacuye; v.
Remarque:
le volume id doit avoir une masse.
yes dynamic doit être actif).

traj(ni)force(f1,v1, f2,v2, ...)axis(x1,y1,z1, x2,y2,z2,...)vol(id)

Définit un couple.

traj(id)animate(ni)func("f1 f2 ... fn")

       les fonctions fi sont exécutées en séquence chaque ni/n image.

traj(ni)func(id1)obj(id2)

       func id1 est éxécutée à chaque image pour l´objet de type obj et d´identificateur id2.
Remarques:
si id1=nombre, ce nombre est passé à la fonction C TRAJ_FUNC_C(struct Objet *p_obj_traj, long num) du fichier utilb.c.
si id1="fff" la fonction anyflo fff(ni,cpt) est éxécutée.

traj(ni)tran(x1,y1,z1, x2,y2,z2,...)aim light(id)

traj(ni)tran(x1,y1,z1, x2,y2,z2,...)aim view(id)

Même syntaxe pour les autres transformations.

traj(ni)tran(x1,y1,z1, x2,y2,z2,...)eye light(id)

traj(ni)tran(x1,y1,z1, x2,y2,z2,...)eye view(id)

Même syntaxe pour les autres transformations.

traj(ni)hom(c1,c2,...)vol(id)

traj(ni)interpol(id1,id2,...)vol(id0)

       Construit une trajectoire de durée ni en interpolant les points du volume id0 entre ceux des volumes id1, id2, ...
Remarque: Les volumes idi doivent avoir la même topologie.

traj(ni)interpol(id1,id2)image(id0)

       Construit une trajectoire de durée ni en interpolant l´image id0 entre les images id1 et id2.
Note: images idi doivent avoir la même topologie.

traj(ni)texture(m1,m2,...)vol(id)

traj(ni)mass(m1,m2,...)vol(id)

traj(ni)name("nnn.eee")number(n1,n2)image(id)

Lit les images "NNNnnnn.eee" de nnnn=n1 à nnnn=n2.
Options:
col(r,v,b): image(id,id)transp(t)col(r,v,b)
col(r1,v1,b1)col(r2,v2,b2): image(id,id)transp(t)col(r1,v1,b1)col(r2,v2,b2)
col(r11,v11,b11, r12,v12,b12, ...)col(r21,v21,b21, r22,v22,b22, ...): permet de varier les coefficients de la couleur
dim(nx,ny): size of images
number("nD",n1,n2): numéro sur n chiffres.
transp(t1,t2): image(id,id)transp(t1,t2)col(r,v,b)
transp(t1,t2)transp(t3,t4): image(id,id)transp(t1,t2)transp(t3,t4)col(r,v,b)
transp(t11,t12,0, t21,t22,0, ...)transp(t13,t14,0, t23,t24,0, ...): permet de varier les coefficients de transparence
Options:
col(r,v,b): image(id,id)transp(t1,t2)transp(t3,t4)col(r1,v1,b1)col(r2,v2,b2)
dim(nx,ny): dimension des images
format("nD"): format ("4D" default);
transp(t): image(id,id)transp(t)colr1,v1,b1)col(r2,v2,b2)

Trajectoires de quaternions

traj(ni)quat(q1,q2,...)vol(id)
qi est un quaternion de la forme:
       q = w,x,y,z, avec:
       w = cos(a/2)
       a2 + x2 +y2 + z2 = 1
       module(x,y,z) = sin(a/2)
Correspondant à la rotation de l´espace d´angle a et d´axe (x,y,z).

traj(ni)quat rota(r1,r2,...)vol(id)

Les ri sont de la forme:
       r = a,xr,yr,zr
       Correspondant à la rotation de l´espace d´axe (xr,yr,zr) et d´angle a.
Ces valeurs sont converties en quaternions qui seront interpolés sphériquement.

traj(ni)rota(a1,a2,...)vol(id)

traj(ni)rota(a1,a2,...)axis(x1,y1,z1, x2,y2,z2, ...)vol(id)

traj(ni)rotx(a1,a2,...)vol(id)

traj(ni)roty(a1,a2,...)vol(id)

traj(ni)rotz(a1,a2,...)vol(id)

traj transp

traj(ni)transp(t1,t2,...)obj(id) Définit une trajectoire sur la transparence de l´objet id (image ou volume).
traj transp col
traj transp luminance
traj transp texture
traj transp transp
traj transp vertex

traj transp col

traj transp transp
traj transp luminance


traj(ni)transp(t1,t2,...)col(c1,c2, ...)image(id)
Avec ci=ri,vi,bi
Définie une trajectoire sur la transparence de l´image id en assignant la transparence ti aux pixels dont la couleur est ci et la transparence 0 aux autres pixels.

traj(ni)transp(t_11,t_12,...)transp(t_21,t_22,...)col(c_11,c_12, ...)col(c_21,c_22, ...)image(id)
Avec c_1j=r_1j,v_1j,b_1j and c_2j=r_2j,v_2j,b_2j
Définie une trajectoire sur la transparence de l´image id en assignant la transparence t_1i aux pixels dont la couleur est dans l´intervalle c_1i,c_2i et la transparence t_i2 aux autres pixels.

traj(ni)transp(t1,t2,...)luminance(lum1,lum2,...)image(id)
Définie une trajectoire sur la transparence de l´image id en assignant la transparence ti aux pixels dont la luminance est lumi et la transparence 0 aux autres pixels.

traj(ni)transp(t_11,t_12,...)transp(t_21,t_22,...)luminance(lum_11,lum_12,...)luminance(lum_21,lum_22,...)image(id)
Définie une trajectoire sur la transparence de l´image id en assignant la transparence t_1i aux pixels dont la luminance est fans l´intervalle [lum_1i,lum_2i] et la transparence t_2i aux autres pixels.
Voir des exemples dans le fichier demo1_traj.func, fonctions gen_TRAJ_IMA_TRANSP_COL() et TRAJ_IMA_TRANSP_LUMINANCE().

traj(ni)transp(t1,t1, ...)texture(num)vol(id)

Si le volume id a une texture multiple (t1,t2,...,tn), cette commande définit une trajectoire de transparence sur la texture num (1 <= num <= n).

traj(ni)transp(t11,t12, ...)col(t21, t22, ...)vertex(v)brush(id)

Permet de faire varier (t1,t2) transparences au centre et au bord du sommet v du pinceau id.

traj validate

Permet de faire varier la validation d´un objet.
Exemple:
reaj(25)validate(1,0)vol(id)abs period(1);
       le volume id sera visible 1 seconde et invisible 1 seconde périodiquement.

Options

abs
ini
acc dec pend law
ext
period
time

abs

Par défaut une trajectoire ne peut être initialisée que si une trajectoire de même type n´existe pas, ou si elle est terminée, elle commence alors à la valeur actuelle du paramètre animé, l´option abs permet d´en préciser les modalités:
abs ou abs(1): la trajectoire est initialisée, même si elle n´est pas terminée, et elle commence à la valeur courante du paramètre.
abs(2): la trajectoire est initialisée, même si elle n´est pas terminée, et elle commence à la 1ère valeur de la trajectoire du paramètre.

ini

La transformation se fait à partir de la position d´origine.

Loi de mouvement

Par défaut la trajectoire est graduée linéairement, mais on peut donner une loi de mouvement (cinématique) par l´une des options:
acc : la trajectoire est accélérée.
dec: la trajectoire est décélérée.
pend: la trajectoire est pendulaire.
law(x,y,z,...): la trajectoire suit la law(x,y,z,...).
law(NIL) : pas de loi (valeur par défaut).
ext(n,c,f): la courbe 3D (ni vecteurs de paramètres) est construite par extension (n,c,f) des valeurs (p).

Extension

traj(ni)T(p)obj(id)ext(n,c,f)
La courbe 3D (ni vecteurs de paramètres) est construite par ext(n,c,f) des valeurs (p).

period

traj(ni)T(v)obj(id)period(p)
La trajectoire est périodique, de période p.
       Si p=0 texturepériodique.
       Si p=1 (valeur par défaut): 1, 2, ..., ni, 1, 2, ..., ni, ...
       Plus généralement si per=1 et inc > 1: 1, 1+inc, ..., ni, 1, 1+inc, ..., ni, ...
       Si p=-1: 1, 2, ..., ni, ni-1, ni-2, ..., 1, 2, ...
       Plus généralement si per=-1 et inc > 0: 1, 1+inc, ..., ni, ni-inc, ..., 1, 1+inc, ...
Options:
period(p,inc): incrément (1 par défaut).

time

traj(ni)T(v)obj(id)period(p)time(t)
La trajectoire est périodique et s´achève après périodes.

Trajectoires de sommets d´objets

Ce sont des propriétés de sommets d´objets permettant de modifier dans le temps certains paramètres de ces sommets et donc de les animer:

traj(ni)P(p)vertex(s)obj(id)

       ni est la durée.
       P est une propriété de sommet, p est la liste des vecteurs paramètres de cette propriété.
       s est le numéro du sommet.
       id = identificateur de l´objet obj.
Les options sont valables.
L´option ini: transforme le sommet à partir de sa position d´origine. Pour plusieurs trajectoires sur le même sommet seuls la première doit avoir cette option.

Exemples de propriétés de sommets:
col(r1,v1,b1,r2,v2,b2,...): couleurs aux sommets.
force(x1,y1,z1,x2,y2,z2,...): forces.
rotx(a1,a2,...): rotation en x.
roty(a1,a2,...): rotation en y.
rotz(a1,a2,...): rotation en z.
tran(x1,y1,z1,x2,y2,z2,...): déplacement.

Objet trajectoire

traj(id)animate(ni,ord)type1(p1) type2(p2) ... opt1(o1) opt2(o2) ...

Définit l´objet d´identificateur id et de type traj, avec une durée ni et un ordre ord (0 par défaut),les options permettent d´en préciser les propriétés.
De tels objets jouent le même rôle que la propriété traj définie ci dessus, mais sans être attaché à un objet particulier. La commande:
traj obj(id1)=id2
attach la trajectoire id2 à l´objet obj id1 qui peut être de n´importe quel type y compris une trajectoire, ce qui permet de définir des animations d´ordre arbitraire.
Le codage interne définit un bloc de type traj animate qui apparait comme tel dans la commande edit obj(id).
Pour accéder à une telle trajectoire il faudra écrire:
traj animate obj(id);
Options:
precision(p): la trajectoire est incrémentée toutes les p images (1 par défaut).

traj back

traj(id)animate(ni)back(r1,g1,b1, ...)

Définie la trajectory id de ni images sur la couleur du fond avec les options.

Trajectoires d´image

Les propriétés d´image id peuvent être animées avec:
une trajectoire encapsulée:
       traj(ni)propr(p1)image(id);
une trajectoire animée:
       traj animate image(id)=it; assigne la trajectoire it à l´image id
       traj(it)animate(ni)propr(p1,p2, ...)image(id)
definit une trajectoire de durée ni images sur la propriété propr property.
proprpeut être:

Un vecteur unidimensionnel comme:
       interpol(ida,id2)
       luminance(lum1, lum2, ...) luminance.
       rotx(an1,an2,...)
       roty(an1,an2,...)
       rotz(an1,an2,...)
       transp(t1,t2,...)

Un vecteur bidimensionnel comme:
       dim(nx1,ny1, nx2,ny2, ...)
       move(x1,y1, x2,y2, ...)
       radius(rx1,ry1, rx2,ry2, ...)

Un vecteur tridimensionnel comme:
       dila(r1,v1,b1, r2,v2,b2 ...)
       tran(x1,y1,0, x2,y2,0,...)

Un vecteur hybride comme:
       transp(t1)transp(t2)col(r11,v11,b11, r12,v12,b12, ...) col(r21,v21,b21, r22,v22,b22, ...))
       transp(t1,t2)luminance(a1,a2,0, b1,b2,0, ...)

Un vecteru de chaines de caractères comme:
       name("NNN.eee")number(n1,n2) images de noms ("NNNxxxx.eee", avec xxxx format("4D") dans [n1,n2], ni=n2-n1+1.

       Option debug.

Remarques:
yes image doit être validé pour que les trajectoires d´images soient prises en compte.
Les images doivent être validatées.

Options.

Voir un exemple avec le sous sous menu TRAJ_IMAdu fichier demo1_traj.func

Autre exemple:
       ini traj;
       image(1)dim(200);validate image(1)=1;
/* Order 1: images and horizontal translation */
       traj(1)animate(12,1)name("../../bmp/A.bmp")number("4D",600,611)abs(2)period(1);
       traj(2)animate(12,1)tran(0,-100,0, -300,-100,0)ext(5,1)abs(2)period(1);
/* Order 2: vertical translation */
       traj(3)animate(12,2)tran(0,300,0, 0,0,0)abs(2);
       traj animate traj(2)=3;
       traj animate image(1)=1,2;
       yes traj image;
}

Permettant une animation du deuxi&egrav;me ordre sur des (on suppose que lesimages A0600.bmp A0601.bmp ... A0611.bmp existent).
       premier ordre: images et translation horizontale
       second ordre: translation verticale

Trajectoires de lumièress

ambiance
col
foc
roll
tran
tran aim

traj ambiance light

traj(ni)ambiance(r1,g1,b1, r2,g2,b2, ...)light(id)
       Définit une trajectoire de l´ambiance de la lumière.

traj col light

traj(ni)col(r1,v1,b1, r2,v2,b2, ...)light(id)
       Définit une trajectoire de la couleur de la lumière id.

traj foc light

traj(ni)foc(f1,f2, ...)light(id)
       Définit une trajectoire de l´ouverture de la lumière id lorsque celle-ci est un spot.

traj roll light

traj(ni)oul(r1,r2, ...)light(id)
       Définit une trajectoire du roulis de la lumière id lorsque celle-ci est un spot.

traj tran

traj(ni)tran(x1,y1,z1, x2,y2,z2, ...)light(id)
       Définit une trajectoire de déplacement de la position de la lumière id.

traj tran aim light

traj(ni)tran(x1,y1,z1, x2,y2,z2, ...)aim light(id)
       Définit une trajectoire de la direction de la lumière id lorsque celle-ci est un spot.

Trajectoires de rayons

traj(ni)radius(rx1,ry1, rx2,ry2, ...)brush(id)

Définit une trajectoire de ni images sur les rayons du pinceau id.
Options:
ext(e,c,f): avec l´extension (e,c,f).
period(p): période.

Trajectoires de vues

eye
aim view
eye view
foc view
roll view

traj aim view

traj(ni)tran(x1,y1,z1, x2,y2,z2, ...)aim view(id)
       Définit une trajectoire de déplacement de la direction de visée de la view id.
traj(ni)rotx(a1,a2, ...)aim view(id)
       Définit une trajectoire de rotation en x de la fuite de la view id.
traj(ni)roty(a1,a2, ...)aim view(id)
       Définit une trajectoire de rotation en y de la fuite de la view id.
traj(ni)rotz(a1,a2, ...)aim view(id)
       Définit une trajectoire de rotation en z de la fuite de la view id.

traj eye view

traj(ni)tran(x1,y1,z1, x2,y2,z2, ...)eye view(id)
       Définit une trajectoire de déplacement de l´eye de la view id.
traj(ni)rotx(a1,a2, ...)eye view(id)
       Définit une trajectoire de rotation en x de l´eye de la view id.
traj(ni)roty(a1,a2, ...)eye view(id)
       Définit une trajectoire de rotation en y de l´eye de la view id.
traj(ni)rotz(a1,a2, ...)eye view(id)
       Définit une trajectoire de rotation en z de l´eye de la view id.

traj foc view

traj(ni)foc(f1, f2, ...)view(id)
       Définit une trajectoire de la focale de la view id.

traj roll view

traj(ni)roll(r1,r2, ...)view(id)
       Définit une trajectoire du roulis de la view id.

traj T dim obj(id)

Retourne le nombre d´images de la trajectoire de type T de l´objet id.

traj T NP obj(id)

Retourne le numéro de l´image courante (entre 0 et ni-1) de la trajectoire de type T de l´objet id.

Trajectoire de trajectoire

On peut définir des trajectoires sur des trajectoires (comme sur tout objet d´anyflo), pour obtenir une animation d´ordre n (chaque image à l´ordre n étant la trace de l´animation à l´ordre n-1).
Remarque:
Si plusieurs trajectoires id2,id3,... sont définies sur la même trajectoire id1, la première est exécutée avec l´option ini (la source est la trajectoire id1 originale), et la suivante sans cette option (la source est la trajectoire id1 transformée par id2).
Il faut avoir défini:
1) des volumes avec des objets trajectoires de type animate à l´ordre 1:
       traj animate vol(id)=t1,t2,...
2) ces objets trajectoires d´ordre 1:
       traj(ti)animate(n1,1)tansf(p)
3) affectés avec des objets trajectoires de type animate à l´ordre 2:
       traj animate traj(ti)=ti,1,ti,2,...
4) ces objets trajectoires d´ordre 2:
       traj(ti,j)animate(n2,2)transf(p)
etc..
Les volumes id seront animés pendant n1 images sur leurs trajectoires i.
Les trajectoires ti seront animées pendant n2 images sur leurs trajectoires ti,j et seront incrémentées toutes les n1 images.
etc..
interaction screen(n1) spécifie d´effacer l´écran toutes les n1 images.

Voir un exemple dans le fichier demo1_animate.func.

Exemples

Deplacements d´objets

traj(6)tran(0,0,0, 200,0,0)vol(1)
       Construit une trajectoire de déplacement du volume(1).
edit(traj tran vol(1)) imprime:
      0: 0 0 0
      1: 40 0 0
      2: 80 0 0
      3: 120 0 0
      4: 160 0 0
      5: 200 0 0

Trajectoire d´axes

traj(8)axis(0,0,1, 1,1,1, -1,1,1)vol(1)ext(1,1)
       Construit une trajectoire sur l´axe de rotation du volume(1).
edit(traj axis vol(1)) imprime:
      0: 0 0 0
      1: 0.344888 0.344888 1.000000
      2: 0.689775 0.689775 1.000000
      3: 0.950979 1.000000 1.000000
      4: 0.463234 1.000000 1.000000
      5: -0.024511 1.000000 1.000000
      6: -0.512255 1.000000 1.000000
       -1.000000 1.000000 1.000000

Trajectoire de couleur

traj(8)col(1,.75,.5, .5,.75,1)vol(1)ext(1,1)
       Construit une trajectoire de couleurs du volume(1).
edit(traj tran vol(1)) imprime:
      0: 1 0.75 0.5
      1: 0.928571 0.75 0.571429
      2: 0.857142 0.75 0.642857
      3: 0.785715 0.75 0.714286
      4: 0.714286 0.75 0.785714
      5: 0.642857 0.75 0.857143
      6: 0.571429 0.75 0.928571
      7: 0.3 0.75 1

Trajectoire de réflexion

traj(6)illum(1,1,0, 1,.5,0, 1,1,0)vol(1)
       Construit une trajectoire de réflexion (variant entre 1, 0.5 et 1) du volume(1).
edit(traj illum vol(1)) imprime:
      0: 1 0 0
      1: 1 0.2 0
      2: 1 0.4 0
      3: 1 0.6 0
      4: 1 0.8 0
      5: 1 1 0

Trajectoire de spéculaire, brillance, transparence

traj(6)transp(1,0,0, 2,.1,.1, 1,0,0)vol(1)
       Construit une trajectoire de (spéculaire, brillance, transparence) (variant entre (1,0,0), (2,.1,1), (1,0,0)) du volume(1).
edit(traj transp vol(1)) imprime:
      0: 1 0 0
      1: 1.4 0.04 0.4
      2: 1.8 0.08 0.8
      3: 1.8 0.08 0.8
      4: 1.4 0.04 0
      5: 1 0 0

Trajectoire de déplacement de sommet

traj(6)tran(0,0,0, 200,0,0)vertex(1)vol(1)
       Construit une trajectoire de déplacement du sommet 1 du volume(1).

Trajectoire de trajectoire

cube(1);traj vol(1)=1;
traj(100)col(1,0,0, 0,1,0, 0,0,1)abs(2)vol(1)period(-1);
traj(1)animate(ni1)tran(-300,0,0, 300,0,0)abs(2)period(1);
traj traj(1)=2,3;
traj(2)animate(ni2)roty(0,2*PI)abs(2)period(1);
traj(3)animate(ni2)rotz(0,2*PI)abs(2)period(1);

       Construit un cube suivant une trajectoire linéaire (-300,0,0, 300,0,0).
Cette trajectoire tourne autour de l´axe y et autour de l´axe z.
Remarque: yes traj doit être actif.

Voir aussi

audio traj
device traj
dim traj
edit traj
exec traj
ini traj
mouse traj
no traj
NP traj
yes traj
rem traj