vue
view
view(id)
Crée la vue id.
Options:
foc(f): de focale f (1 par défaut).
aim(xa,ya,za): point de visée (xa,ya,za) (0,0,0 par défaut).
axis(dx,dy,dz): direction (dx,dy,dz) (0,1,0 par défaut).
view(v1,v2,...,vn)image(i1,i2,...,in): vue de type image.
eye(xo,yo,zo): eye en (xo,yo,zo) (0,0,-896 par défaut).
roll(r): de roulis r (0 par défaut).
vol(v): le volume v est mis en perspective par la vue id.
Pour modifier cette vue employer les fonctions:
aim view(id)=xa,ya,za;
axis view(id)=dx,dy,dz;
eye view(id)=xo,yo,zo;
foc view(id)=f;
roll view(id)=r;
type view(id)="aim"" or "axis"
vol view(id)=v1,v2,...;
Remarque: sans option tous les paramètres sont initialisés aux valeurs par défaut
du fichier komb.h.
Vues adaptatives
local view
La commande local(0)view(id)="LOC" encapsule dans la vue id
une compilation local de la fonction LOC(). Il est alors possible de coder dans cette
fonction la redéfinition (à chaque image) des paramètres (eye, aim, axis, foc, roll) de la vue id
dépendant de la scène et des autres vues.
EN COURS DE DEVELOPPEMENT
En mode displ=2
on peut read et écrire les matrices de mise en perspective de la vue num par:
w=abs eye view(num) ou abs eye view(num)=w, de meme:
eye pers view(num)
abs pers view(num)
eye pers view(num)
pers abs view(num)
On peut aussi écrire des fonctions de passage d´un référentiel à un autre:
abs eye view(num)="name d´une fonction", de meme:
eye pers view(num)
pers screen view(num)
screen abs view(num)
pers abe view(num)
Exemple: abs eye view(1)="toto"
Vues multiples
vol view(id1)=id2;
associe la vue
id1 au volume id2.
view write
view(id)dim(n)write("n1;n2;...nn*n)
Construit la vue id de type write.
La scène 3D est affichée dans un écran virtuel de dimensions (n*n) fois celles de l´écran réel
selon n*n viewports de dimensions celles de l´écran réel et déplacés de +-(i,j)*(dx,dy)/n.
Chacune des fi (1<=i<=n*n) fenêtres virtuelles est garée dans le
fichier ni.
Remarques:
1) Par défaut n=2.
et il doit y avoir exactement n*n noms de fichiers images dont le name comporte l´extension.
2) Une application importante de cette méthode est le calcul d´images en très hautes définitions.
Il conviendra de concaténer convenablement les fichiers n1;n2;...nn*n
pour en faire une seule image de très grandes dimensions par la commande
image(id1,id2,...)image(id0)secx(nx)secy(ny).
Exemple:
view(1)dim(2)write("A.bmp;B.bmp;C.bmp;D.bmp);
L´image (de définition 4 fois celle de l´écran) est garée dans les 4 fichiers
A.bmp B.bmp C.bmp D.bmp.
Transformation
L´eye et la direction de visée d´une vue peuvent être tournés et dilatés, see:
rotx eye aim view
roty eye aim view
rotz eye aim view
dilx eye aim view
dily eye aim view
dilz eye aim view
Voir aussi: