3d temps reel en as2

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

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.