3d temps reel en as2

Soyez le premier à donner votre avis sur cette source.

Vue 15 895 fois - Téléchargée 4 359 fois

Description

Voici un exemple de 3D temps reel tres simple, qui utilise ma class matrix3d.
Vous pouvez creer tres simplement des lignes, des polygones et des courbes en 3D.

Source / Exemple :


// definition du centre de la scene
var pos:Object = new Object();
pos.x = 500;
pos.y = 300;
//
// definition de la class matricielle
var m3d:matrix3d = new matrix3d();
//
// On dessine notre figure via l'API de la class matrix3d
// -> on dessine un polygone
// la fonction registerPolygon() prend en parametre un array de point pouvant contenir autant de points que vous voulez.
m3d.registerPolygon(
						new Array(
							m3d.registerPoint(200,200,-200),
							m3d.registerPoint(200,-200,-200),
							m3d.registerPoint(-200,-200,-200),
							m3d.registerPoint(-200,200,-200)
						)
					);
// un autre...
m3d.registerPolygon(
						new Array(
							m3d.registerPoint(200,200,200),
							m3d.registerPoint(200,-200,200),
							m3d.registerPoint(-200,-200,200),
							m3d.registerPoint(-200,200,200)
						)
					);
// on dessine 4 courbes:
m3d.registerCurve(
					m3d.registerPoint(200,200,200),
					m3d.registerPoint(200,-200,200),
					m3d.registerPoint(200,-200,-200)
				 );
m3d.registerCurve(
					m3d.registerPoint(200,200,200),
					m3d.registerPoint(200,200,-200),
					m3d.registerPoint(200,-200,-200)
				 );
m3d.registerCurve(
					m3d.registerPoint(200,200,-200),
					m3d.registerPoint(200,-200,-200),
					m3d.registerPoint(200,-200,200)
				 );
m3d.registerCurve(
					m3d.registerPoint(200,200,-200),
					m3d.registerPoint(200,200,200),
					m3d.registerPoint(200,-200,200)
				 );
// on dessines qques lignes pour terminer la figurer:
m3d.registerLine(
					m3d.registerPoint(-200,200,-150),
					m3d.registerPoint(-200,200,-200)
				 );
m3d.registerLine(
					m3d.registerPoint(-200,-200,-150),
					m3d.registerPoint(-200,-200,-200)
				 );
m3d.registerLine(
					m3d.registerPoint(-200,-200,-150),
					m3d.registerPoint(-200,200,-150)
				 );
m3d.registerLine(
					m3d.registerPoint(-200,-200,-150),
					m3d.registerPoint(200,-200,200)
				 );
m3d.registerLine(
					m3d.registerPoint(-200,200,-150),
					m3d.registerPoint(200,200,200)
				 );
//
// on update la scene, via la fonction créée en bas de cette page de script.
m3d.rotate_y(-0.5);
m3d.rotate_x(-0.5);
update();
//
// Cette partie du code sert à effectuer des rotation 
// de scene via le pavé directionnel du clavier.
var itv = setInterval(function () {
	if (Key.isDown(Key.LEFT)) {
		m3d.rotate_y(-0.1);
		update();
	}
	if (Key.isDown(Key.RIGHT)) {
		m3d.rotate_y(0.1);
		update();
	}
	if (Key.isDown(Key.UP)) {
		m3d.rotate_x(0.1);
		update();
	}
	if (Key.isDown(Key.DOWN)) {
		m3d.rotate_x(-0.1);
		update();
	}
}, 50);
//
// Cette fonction efface la scene et la redessine dans sa nouvelle configuration.
function update() {
	_root.clear();
	m3d.drawMatrix(_root, pos, {lineStyle:{thickness:1, color:0x000000, alpha:100}});
}
//

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

BlackWizzard
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2
CJEROME > telecharge le fichier, et ouvre le flp (fichier projet flash) tu verra un exemple.
Avant d'etre utilisée, la class est incluse.

Pour les autres qui suivent la conversation >
Dans mon dernier commentaire j'indiquai que je passait les concours d'ecole de commerce.
Update: J'ai été pris aux deux concours, je passe en 3eme année, que je fait aux USA ;)
cs_cjerome
Messages postés
9
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
14 septembre 2007

bonjour je suis debutant en 3d, et je ne sais pas comment faire pour que ta classe matrix3d soit prise en compte?
bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019

Slt BlackWizard,

Merci pour cette source (claire, rapide et sans bugs).
10/10

++

BILALoch
John_Doe_88
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

ah ok. En tout cas pour moi ça suffit largement.
Bon courage pour tes concours !
BlackWizzard
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2
John_Doe_88 > ce n'est pas le cours ça..
Le cours n'est pas fini d'ecrire, mais il apprendra a creer une class de ce type, avec les maths, la logique, etc...
Mais etant donné que les concours des ecoles de commerce ça commence bientot, je n'ai pas trop le temps de finir de l'ecrire, donc il ne sera publié que dans qques semaines.

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.