- //Voici un petit aperçu de ce qui vous attend :
- //============================
-
- //**Paramètres**
- /*Emplacement de l'origine.
- Sert de référence pour afficher les points dans
- l'espace.*/
- origine_x=Stage.width/2;
- origine_y=Stage.height/2;
-
- /*Distance entre celui qui regarde et l'écran.
- Selon sa valeur, accentue plus ou moins l'effet de
- perspective lors du rendu.*/
- distance=Stage.width/2;
-
-
- //**Fonctions**
- /*Sert à créer un point en retournant un objet
- renfermant les coordonnées de celui-ci dans
- l'espace.*/
- function point(x,y,z){
- triplet=new Object();
- triplet.x=x;
- triplet.y=y;
- triplet.z=z;
- return triplet;
- }
-
- /*Permet de relier 3 points entre eux par des
- traits, et avec un remplissage. Les points sont des
- objets retournés par la fonction du même nom.
- La couleur est à rentrer sous la forme
- héxadécimale et l'alpha doit être une valeur
- comprise entre 0 et 100*/
- function face(point1,point2,point3,couleur,alpha){
- polygone=new Object();
- polygone.sommet1=point1;
- polygone.sommet2=point2;
- polygone.sommet3=point3;
- polygone.couleur=couleur;
- polygone.alpha=alpha;
- return polygone;
- }
-
- /*Fonctions de translation : elles permettent
- de déplacer un point sur les axes du repère.*/
- function translation_x(point,valeur){
- point.x+=valeur;
- }
- function translation_y(point,valeur){
- point.y+=valeur;
- }
- function translation_z(point,valeur){
- point.z+=valeur;
- }
-
- /*Fonctions de rotation : elles permettent
- de faire tourner un point autour des axes du
- repère.*/
- function rotation_x(point,angle){
- angle=angle*Math.PI/180;
- y=point.y;
- z=point.z;
- point.y=y*Math.cos(angle)-z*Math.sin(angle);
- point.z=z*Math.cos(angle)+y*Math.sin(angle);
- }
- function rotation_y(point,angle){
- angle=angle*Math.PI/180;
- x=point.x;
- z=point.z;
- point.x=x*Math.cos(angle)-z*Math.sin(angle);
- point.z=z*Math.cos(angle)+x*Math.sin(angle);
- }
- function rotation_z(point,angle){
- angle=angle*Math.PI/180;
- x=point.x;
- y=point.y;
- point.x=x*Math.cos(angle)-y*Math.sin(angle);
- point.y=y*Math.cos(angle)+x*Math.sin(angle);
- }
-
-
- //**Autres variables et fonctions**
- faces=new Array();
-
- function ordre(a,b){
- z1=a.z;
- z2=b.z;
- if(z1>z2) return -1;
- else{
- if(z1<z2) return 1;
- else return 0;
- }
- }
//Voici un petit aperçu de ce qui vous attend :
//============================
//**Paramètres**
/*Emplacement de l'origine.
Sert de référence pour afficher les points dans
l'espace.*/
origine_x=Stage.width/2;
origine_y=Stage.height/2;
/*Distance entre celui qui regarde et l'écran.
Selon sa valeur, accentue plus ou moins l'effet de
perspective lors du rendu.*/
distance=Stage.width/2;
//**Fonctions**
/*Sert à créer un point en retournant un objet
renfermant les coordonnées de celui-ci dans
l'espace.*/
function point(x,y,z){
triplet=new Object();
triplet.x=x;
triplet.y=y;
triplet.z=z;
return triplet;
}
/*Permet de relier 3 points entre eux par des
traits, et avec un remplissage. Les points sont des
objets retournés par la fonction du même nom.
La couleur est à rentrer sous la forme
héxadécimale et l'alpha doit être une valeur
comprise entre 0 et 100*/
function face(point1,point2,point3,couleur,alpha){
polygone=new Object();
polygone.sommet1=point1;
polygone.sommet2=point2;
polygone.sommet3=point3;
polygone.couleur=couleur;
polygone.alpha=alpha;
return polygone;
}
/*Fonctions de translation : elles permettent
de déplacer un point sur les axes du repère.*/
function translation_x(point,valeur){
point.x+=valeur;
}
function translation_y(point,valeur){
point.y+=valeur;
}
function translation_z(point,valeur){
point.z+=valeur;
}
/*Fonctions de rotation : elles permettent
de faire tourner un point autour des axes du
repère.*/
function rotation_x(point,angle){
angle=angle*Math.PI/180;
y=point.y;
z=point.z;
point.y=y*Math.cos(angle)-z*Math.sin(angle);
point.z=z*Math.cos(angle)+y*Math.sin(angle);
}
function rotation_y(point,angle){
angle=angle*Math.PI/180;
x=point.x;
z=point.z;
point.x=x*Math.cos(angle)-z*Math.sin(angle);
point.z=z*Math.cos(angle)+x*Math.sin(angle);
}
function rotation_z(point,angle){
angle=angle*Math.PI/180;
x=point.x;
y=point.y;
point.x=x*Math.cos(angle)-y*Math.sin(angle);
point.y=y*Math.cos(angle)+x*Math.sin(angle);
}
//**Autres variables et fonctions**
faces=new Array();
function ordre(a,b){
z1=a.z;
z2=b.z;
if(z1>z2) return -1;
else{
if(z1<z2) return 1;
else return 0;
}
}