Soyez le premier à donner votre avis sur cette source.
Vue 10 168 fois - Téléchargée 972 fois
//Surface de dessin this.createEmptyMovieClip("surface3D", 0); //Les dimensions du calque largeur = 600; hauteur = 400; //Classe Point3D //Constructeur function Point3D(x, y, z) { this.x = x; this.y = y; this.z = z; this.rx = x; //rotated x this.ry = y; //rotated y this.rz = z; //rotated z } //Méthode Point3D::rotate Point3D.prototype.rotate = function(cax, sax, cay, say, caz, saz) { var x, y, z, tx, ty, tz; x = this.x; y = this.y; z = this.z; //rotation autour de l'axe x ty = y; tz = z; y = cax * ty - sax * tz; z = sax * ty + cax * tz; //rotation autour de l'axe y tx = x; tz = z; x = say * tz + cay * tx; z = cay * tz - say * tx; //rotation autour de l'axe z tx = x; ty = y; x = caz * tx - saz * ty; y = saz * tx + caz * ty; //Mise à jour this.rx = x; this.ry = y; this.rz = z; }; //Classe Ligne3D //Constructeur function Ligne3D(p1, p2) { this.p1 = p1; this.p2 = p2; } //Méthode Ligne3D::draw Ligne3D.prototype.draw = function() { var x1, y1, x2, y2 var l = largeur / 2, h = hauteur / 2; var distance_focale = 0.577350269189626 * l; // 0.577350269189626 = tangeante(60/2) // 60 est l'angle du champ de vision (en degrés) x1 = l + distance_focale * this.p1.rx / (this.p1.rz+50); y1 = h - distance_focale * this.p1.ry / (this.p1.rz+50); x2 = l + distance_focale * this.p2.rx / (this.p2.rz+50); y2 = h - distance_focale * this.p2.ry / (this.p2.rz+50); with(surface3D) { moveTo(x1, y1); lineTo(x2, y2); } }; //Classe Objet3D function Objet3D(nb_points, nb_lignes, couleur, epaisseur) { this.points = new Array(nb_points); this.lignes = new Array(nb_lignes); this.couleur = couleur; this.epaisseur = epaisseur; } Objet3D.prototype.rotate = function(ax, ay, az) { var i; var cax = Math.cos(ax*Math.PI/180), // cos(ax) sax = Math.sin(ax*Math.PI/180), // sin(ax) cay = Math.cos(ay*Math.PI/180), // cos(ay) say = Math.sin(ay*Math.PI/180), // sin(ay) caz = Math.cos(az*Math.PI/180), // cos(az) saz = Math.sin(az*Math.PI/180); // sin(az) for(i=0; i<this.points.length; i++) this.points[i].rotate(cax, sax, cay, say, caz, saz); }; Objet3D.prototype.draw = function(ax, ay, az) { var i; for(i=0; i<this.lignes.length; i++) this.lignes[i].draw(); }; objets = new Array();
22 juin 2008 à 14:44
7 janv. 2005 à 22:36
et jme suis fait recaler en voulant l'enregistrer en mx normal
Au passage, niveau code ca commence à devenir l'usine à gaz
c dommage ke les variables globales des calques ne soient pas reconnues dans le code action script des boutons...
6 janv. 2005 à 19:09
6 janv. 2005 à 17:44
Dans mon prochain zip (au plus tard ce week end) j'ajouterai une version mx simple du .fla
6 janv. 2005 à 17:21
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.