enVoiture

enVoitureCécile Picard-Limpens [x]

La «proglet» enVoiture.

ATTENTION: CETTE PROGLET EST EN COURS DE VALIDATION NE PAS UTILISER !!!
Cliquer ici pour faire l'activité.
Cliquer ici pour lire le tutoriel.
Cette proglet vise à s’approprier les différents éléments caractéristiques d’un graphe, en vue de saisir les algorithmes qui en font usage, comme par exemple, l'algorithme du plus court chemin.
Il s'agit de la première partie du tutoriel sur les graphes. De nature introductive, elle se limite essentiellement à un cas concret de parcours d'une voiture entre des villes, ici appelées "spots". On veut faire passer l'idée ici que l'application se retrouve dans de nombreuses situations du quotidien.
Un graphe est un ensemble de points, dont certaines paires sont directement reliées par un lien. Ces liens peuvent être orientés, d'un point vers un autre ou vice versa. Dans le cas contraire, les liens sont symétriques, et le graphe est non-orienté.
Généralement, les points sont appelés les sommets ou les nœuds. Les liens sont appelés arêtes dans les graphes non-orienté et arcs dans un graphe orienté. (Wikipedia)
Pour construire et manipuler un graphe, ici un ensemble de villes dénommées "spots", il faut utiliser la construction javascool. Toutes ces fonctions sont accessibles par l'interface, ou par des fonctions programmable:

// Ajouter ou modifier un spot:

addSpot(String n, int col, String f, int x, int y, float d1, float d2, float h)
où:
  • n est le nom du spot.
  • col est la couleur du spot: le codage est 0xRRVVBBRR, VV, BB sont les intensités rouge, verte et bleue, codées en héxadécimal de 00 à FF.
  • f est la forme du spot: "B" = Box, "P" = Pentagone, "O" = Octogone, "C" = Cylindre.
  • x est l'abscisse du spot entre -1000 et 1000.
  • y est l'ordonnée du spot entre -1000 et 1000.
  • d1 est la dimension1 à la base du spot, typiquement 10 à 100.
  • d2 est la dimension2 au sommet du spot, typiquement 10 à 100.
  • h est la hauteur du spot, typiquement 10 à 100.

// Obtenir un spot à partir d'une position 2D:

String n = getClosestSpot(int x, int y)
où:
  • x est l'abscisse de la position entre -1000 et 1000.
  • y est l'ordonnée de la position entre -1000 et 1000.
  • n est le nom du spot, qui est renvoyé.

// Détruire un spot:

removeSpot(String n)
où:
  • n est le nom du spot.

// Ajouter ou modifier un lien existant entre deux spots:

addLink(String nA, String nB)
où:
  • nA est le nom du premier spot.
  • nB est le nom du second spot.

// Détruire un lien existant entre deux spots:

removeLink(String nA, String nB)
où:
  • nA est le nom du premier spot du lien à détruire.
  • nB est le nom du second spot du lien à détruire.

// Questionner si deux spots sont liés:

boolean a = isLink(String nA, String nB)
où:
  • nA est le nom du premier spot du lien considéré.
  • nB est le nom du second spot du lien considéré.
  • a est la réponse à la question "Les spots nA et nB sont-ils en lien?", soit "vrai" soit "faux", qui est renvoyée.
Un exemple d'utilisation se fait lors du lancement de la proglet avec une fenêtre d'interaction.
Un exemple de programme d'utilisation est disponible ici.

Utilisation du 3D.

Attention, sous windows, pour utiliser cette proglet (qui utilise OpenGL) il faut copier les librairies dynamiques disponibles ici dans le répertoire Java de la machine, c'est à dire, normalement c:\Program Files\Java\jre6(ou équivalent)\bin. Se faire aider du responsable informatique si besoin.
Cette «proglet» est un composant logiciel ouvert dont documentation et code-source sont disponibles ici