Outils pour utilisateurs

Outils du site


3d

Ceci est une ancienne révision du document !


3D

Objectif

  • Initier aux concepts généraux de la 3D
  • Programmation 3D avec Tangara
  • Inclure d’autres objets basiques : cube, sphère, quadrilatère
  • Acquérir une représentation des coordonnées

Préparation de la séance

  • Tangara accessible sur tous les ordinateurs
  • Fonctions 3D activées (java3D) : consulter le site de tangara pour obtenir des informations sur l’installation de java3D
  • Un tableau disponible

Déroulement de la séance

Dans cette séance, les élèves devront d’abord apprendre à construire un espace dans lequel inclure les objets 3D puis dans une séance ultérieure, seront vus les principes des coordonnées. Ici, nous ne ferons donc qu’une initiation aux coordonnées.

Construction d'un espace en 3D

  1. Principes de programmation

Pour ajouter un objet à l’espace 3D, il faut donc :

  • Créer un espace3D
  • Créer un objet
  • Ajouter l’objet
  1. Création de l’espace3D

Le but de la construction est de parvenir à une « boîte à chaussure ». Nous allons utiliser un nouvel objet qui contiendra toute la scène 3D

e=new Espace3D()
Pour l’instant cette fenêtre 3D est noire car nous n’avons rien mis dedans.
Nous définissons ensuite la taille de l’espace :
<code javascript>e.définirHauteur(320)
e.définirLargeur(512)
  • Mise en page d’un espace en 3D

L’espace peut être placé au centre de l’écran avec les commandes habituelles :

e.avancer(40)
e.descendre(40)
e.monter(40)
e.reculer(40)

Création d'un objetet ajout d'un objet à l'espace 3D

Créons un cube. On donnera la taille du cube entre les parenthèses : ici taille 1 d’arête et ajoutons-le à l’espace3D :

c3 = new Cube3D(1)
e.ajouterObjet(c3)

Il est possible de définir une couleur en même temps que l’arête du cube :

c3 = new Cube3D(1, « bleu » )

Voici la liste des couleurs disponibles :

Les élèves doivent concevoir une scène 3D intégrant un cube. On pourra leur faire remarquer qu’ils peuvent orienter la vue à droite et à gauche à l’aide de la souris en maintenant le clic.

Placement du cube

  1. Positionnement

Les coordonnées sont données suivant l'axe des X, l'axe des Z et l'axe des Y.

On utilisera :

c3.définirPosition(-1,0,-3)

Les élèves doivent placer un cube devant la caméra : on donnera les coordonnées. Ils devront trouver comment le déplacer à droite et gauche, devant/derrière, haut et bas en modifiant les coordonnées On demandera de déplacer le cube sur les coordonnées X ou Y ou Z de 0.5 unité

Les coordonnées sont mesurées à partir de 0 : elles peuvent aussi être négatives

Il est possible de changer ensuite, c’est-à-dire après avoir créé le cube, la valeur du côté en utilisant l’action :

c3.définirRayon(1.5)
  1. Rotation

On peut tourner un objet avec la commande :

c3.définirAngle(50)

L’angle est en degré ; la rotation s’effectue par défaut sur l’axe Y Si l’on souhaite réaliser la rotation sur un autre axe on utilisera :

c3.définirAxeDeRotation(« Z »)

Les élèves devront faire basculer le cube sur l’axe de leur choix d’un angle de 45°

Ajout d'une sphère

boule = new Sphère3D()

Cette sphère par défaut est centrée sur l'origine et a pour rayon 1.

Créer un objet Sphère3D, en précisant son rayon :

boule = new Sphère3D()

Les élèves les plus avancés pourront chercher à disposer la sphère à côté du cube, sinon on donnera la position :

boule.définirPosition(1,0,-3)

Les élèves doivent ajouter une sphère à la scène avec les indications fournies.

Ajout d'un cylindre

Le cylindre3D s’ajoute de manière identique au cube3D mais on utilise :

Cylindre3D(Rayon, hauteur)
cl3d = new Cylindre3D(1, 2)

Ajout de texte

Créer un objet Texte3D sans en préciser le texte :

unTexte = new Texte3D()

Pour définir le texte ultérieurement on utilise :

unTexte.définirTexte("du texte")

Créer un objet Texte3D, en précisant le texte à afficher :

unTexte = new Texte3D("du texte")

Créer un objet Texte3D, en précisant le texte à afficher et l'échelle :

unTexte = new Texte3D("du texte", 1.5)

L'échelle est un nombre réel. Par défaut, cette échelle est fixée à 1. Une échelle de 2 rendra le texte 2 fois plus gros. Créer un objet Texte3D, en précisant le texte à afficher et la couleur :

unTexte = new Texte3D("du texte", "rouge")

Définir le texte à afficher :

unTexte.définirTexte("du texte")

Annexe:listing du programme de base 3D complété

pg3D.js
e = new Espace3D();
e.définirHauteur(320);
e.définirLargeur(512);
 
c3 = new Cube3D(0.5);
c3.définirPosition(-1,0,-3);
c3.définirAxeDeRotation("Z");
c3.définirAngle(50);
e.ajouterObjet(c3);
 
boule = new Sphere3D(0.1, "jaune");
boule.définirPosition(1,0,-3);
e.ajouterObjet(boule);
 
tronc = new Cylindre3D(0.1,0.5, "vert");
tronc.définirPosition(0,0,-3);
e.ajouterObjet(tronc);
 
unTexte = new Texte3D("du texte", "rouge", 1.5);
unTexte.définirPosition(-3,-1,-8);
e.ajouterObjet(unTexte);
 
e.démarrer();