begin process at 2012 02 10 09:20:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

3D

 > 3D TEMPS REEL EN AS2

3D TEMPS REEL EN AS2


 Information sur la source

Note :
9,64 / 10 - par 11 personnes
9,64 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :3D Niveau :Initié Date de création :08/01/2005 Vu / téléchargé :14 716 / 4 261

Auteur : BlackWizzard

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note


 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

  • // 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}});
  • }
  • //
// 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}});
}
//


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture SPORE-LIKE DEMO
Source avec Zip Source avec une capture LINECHART / AREACHART : COMPOSANT AS2, SOURCE XML, STYLE PAR...
Source avec Zip COURS FLASH: COMMUNICATION FLASH/PHP
Source avec Zip Source avec une capture CLASS PIECHART: CODE ET COURS (8 PAGES FLASHPAPER/WORD)
Source avec Zip 3 COURS COMPLETS FORMAT FLASHPAPER: LES BASES + LE XML + MIS...

 Sources de la même categorie

Source avec Zip Source avec une capture FORMULE 1 3D par gremlins7
Source avec Zip Source avec une capture GET_RELATIVE_MATRIX3D: LE CONCEPT... par top30
Source avec Zip Source avec une capture MENU CARROUSEL FULL 3D CS4 par gremlins7
Source avec Zip Source avec une capture CARROUSEL EN VRAI 3D SOUS CS4 par pegase31
Source avec Zip Source avec une capture UNE TÊTE REGARDE LA SOURIS (ILLUSION DE 3D) par daddy11world

Commentaires et avis

Commentaire de tom le 08/01/2005 10:28:33 administrateur CS

miam miam,
mais comme j'avais deja remarqué, l'as2 ne rajoute pas beaucoup de vitesse à la génération d'objets. Mais sinon cool pour les courbes, dommage qu'on puisse pas generer des polygones avec des courbes (apparement).
Je vais en tout cas regarder le code de ce pas...

Commentaire de WhiteMagus le 08/01/2005 11:30:58

Bon. OK. Là, ça calme. :D
Le code est super, l'effet visuel rend vachement bien, le code est clair et l'anim ne prend pas beaucoup de ressource CPU.
C'est super, encore une fois.
Ben merci bien. Grâce à cette source je vais pouvoir arranger ma syntaxe du 3D sous Flash.
@+ !

Commentaire de WhiteMagus le 08/01/2005 11:33:04

PS. : 10/10 ;)

Commentaire de Blacknight91titi le 08/01/2005 11:59:20

la source en MX 2004 :'(
domage

Commentaire de BlackWizzard le 08/01/2005 14:26:17 administrateur CS

oui, MX2004 car il sagit d'une class as2.

Commentaire de pegase31 le 08/01/2005 14:30:33 administrateur CS

même remarque que Blacknight .. mais encore une fois chapeau !

Il manquerait juste un peu de perspective et ce serait parfait ! ;)

Commentaire de John_Doe_88 le 08/01/2005 15:32:34

Bravo et merci bien (aussitôt dit aussitôt fait c cool...)
En tout cas nickel un code super clair, efficace, ... Enfin comme d'habitude quand ça vient de BlackWizzard, une source de référence ! 10

Commentaire de BlackWizzard le 08/01/2005 16:53:43 administrateur CS

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.

Commentaire de John_Doe_88 le 08/01/2005 18:30:40

ah ok.  En tout cas pour moi ça suffit largement.
Bon courage pour tes concours !

Commentaire de bilaloch le 16/01/2005 17:55:21

Slt BlackWizard,

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

++

BILALoch

Commentaire de cjerome le 10/08/2007 02:10:50

bonjour je suis debutant en 3d, et je ne sais pas comment faire pour que ta classe matrix3d soit prise en compte?

Commentaire de BlackWizzard le 10/08/2007 13:42:18 administrateur CS

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 ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales