retour à la liste des documents en ligne en français...

Installation

Il n'est pas utile d'installer quoi que ce soit pour visualiser des graphiques LiveGraphics3D et pour les faire fonctionner sur d'autres pages, car votre navigateur web les charge automatiquement et exécute l'archive Java dont vous avez besoin lorsque c'est nécessaire.

Toutefois, afin d'utiliser LiveGraphics3D dans une de vos propres pages Web, vous aurez besoin de l'archive Java live.jar dans le répertoire de votre fichier HTML. C'est comme la façon dont on inclut les images dans des pages web: les pages HTML contiennent des instructions codées pour charger des fichiers images et les navigateurs Web lisent, décodent et affichent. La seule différence avec une archive Java est que le code Java n'est pas affiché, mais exécuté! 

Démarrage rapide

Vous devriez être en mesure de télécharger l'archive Java live.jar avec votre navigateur Web et enregistrez-la sur votre ordinateur. (Habituellement, vous appuyez sur CONTROL en cliquant sur le lien ci-dessus ou vous cliquez avec le bouton droit de la souris puis enregistrez le fichier sous... «binaire» ou «source».) 

Il est à noter que LiveGraphics3D est gratuit pour une utilisation non-commerciale uniquement. Dans le cadre de webMathematica, il est soumis aux licences autorisées pour des fins commerciales par Wolfram Research, Inc..

Après avoir copié live.jar vous pouvez commencer à créer des pages HTML incluant les applets LiveGraphics3D. Les fichiers HTML doivent être placés dans le même répertoire que le fichier live.jar. Un exemple complet ci-dessous.

Tout d'abord un fichier contenant l'objet Graphics3D est nécessaire. Nous l'appellerons test.m avec le contenu suivant:

Graphics3D[{ (* ...primitives and directives... *) },
BoxRatios->{1,4,9} (* ...options... *)]

Ensuite, nous avons besoin d'une page HTML. Voici un exemple simple:

<HTML>
<APPLET ARCHIVE="live.jar" CODE="Live.class" WIDTH=150 HEIGHT=150 ALIGN=LEFT>
<PARAM NAME="BGCOLOR" VALUE=#FFFFFF>
<PARAM NAME="MAGNIFICATION" VALUE=1.>
<PARAM NAME="INPUT_FILE" VALUE="test.m">
</APPLET>
</HTML>


Veuillez noter que les noms de fichiers sont sensibles à la casse, que tous les fichiers ont besoin d'une permissions de lecture, et que certains pare-feux pourraient ne pas permettre l'accès aux fichiers ".m" locaux.

Si vous avez placé dans un répertoire l'archive Java live.jar avec le fichier test.m sur votre ordinateur, cette page HTML devrait produire l'applet LiveGraphics3D suivante:

Si cet exemple fonctionne, vous souhaitez peut-être aller au prochain paragraphe et passer au paragraphe Attributs et Paramètres qui porte sur les attributs et les paramètres du tag APPLET LiveGraphics3D, ou à la section Préparation Graphiques avec Mathematica, pour plus d'informations au sujet de la conversion d'objets Graphics3D (et autres graphiques) à une InputForm appropriée pour LiveGraphics3D. 

Dysfonctionnement

Si l'archive Java ne fonctionne pas tel que c'est décrit, le fichier a probablement été corrompu pendant la transmission. Dans ce cas veuillez vider tous les caches, désactiver tous proxys, redémarrez votre navigateur Web et téléchargez l'archive Java live.jar à nouveau et redémarrez votre navigateur Web une fois de plus, car il pourrait utiliser les archives corrompues différemment. Si cela ne résoud pas le problème, vous pourrez essayer d'utiliser un autre navigateur Web ou même de passer à un autre système d'exploitation si possible. Vous pouvez aussi m'écrire (in english or Deutsch) et je vais vous enverrai le fichier en pièce jointe.

Attributs et paramètres

L'applet LiveGraphics3D peut être contrôlée par la création de plusieurs attributs et de paramètres, comme démontré dans le paragraphe Démarrage rapide. La plupart des attributs et des paramètres sont facultatifs, mais les attributs ARCHIVE, CODE, WIDTH, et HEIGHT et le paramètre INPUT_FILE doivent être précisés. (Le paramètre INPUT doit être utilisé à la place d'INPUT_FILE.)

Avant tout, les attributs de l'applet contrôlent la façon dont l'applet apparaît dans la page HTML. (Voir les spécifications de référence HMTL 4.0 ou HTML 3.2 pour la liste officielle des attributs.)

attributs mise en oeuvre
ALT texte alternatif pour l'affichage du texte seulement
ALIGN l'endroit où placer l'applet dans la page: LEFT, RIGHT, TOP, TEXTTOP, MIDDLE, ABSMIDDLE, BASELINE, BOTTOM, ABSBOTTOM .
ARCHIVE le nom de l'archive Java, doit s'appeller "live.jar" pour LiveGraphics3D
CODE le nom du fichier class, doit s'appeller "Live.class" pour LiveGraphics3D
CODEBASE le nom du répertoire ou URL, spécifier où se trouve le fichier live.jar
HEIGHT hauteur en pixels du cadre de l'applet
HSPACE espace souhaité autour de l'applet horizontalement
NAME nom de l'applet (non utilisé dans LiveGraphics3D)
VSPACE espace souhaité autour de l'applet verticalement
WIDTH largeur en pixels du cadre de l'applet
Attributs de la balise d'APPLET.

En dehors de ces attributs, l'applet LiveGraphics3D offre d'autres paramètres de contrôle pour l'applet elle-même. Ces paramètres doivent être définis avec balises PARAM comme indiqué dans le paragraphe Démarrage rapide. (Je vous conseille d'utiliser des lettres majuscules pour les noms de ces paramètres.)

paramètres mise en oeuvre
AUDIO_ENTER nom de fichier audio (format ".au"); joué chaque fois que le curseur de la souris rentre dans l'applet
AUDIO_LOOP_ENTER idem que AUDIO_ENTER mais joué en boucle
AUDIO_FIRST_FRAME idem que AUDIO_ENTER mais joué chaque fois que la première image d'une animation est affichée
BACKGROUND nom de fichier d'image JPEG ou GIF qui doit être affichée en arrière-plan fixe
BGCOLOR arrière-plan coloré en forme hexadécimale
CYLINDRICAL_BACKGROUND nom de fichier d'image JPEG ou GIF qui doit être affichée en arrière-plan cylindrique
DEPENDENT_VARIABLES une liste des règles de remplacement pour les variables dépendantes de la forme {variable->expression, ...}.
INDEPENDENT_VARIABLES une liste des règles de remplacement pour les valeurs d'initialisation des variables indépendantes de la forme {variable->number, ...}.
INITIAL_ROTATION un angle en degré (ou deux angles séparés par une virgule), spécification d'une rotation initiale ou d'un label pour l'angle(s) qui doit être définit dans la partie référente pour l'URL
INPUT chaine (entre double-guillemets) contenant une InputForm de l'objet Graphics3D ou ShowAnimation (double-guillemets (") à l'intérieur cette chaine doit avoir une paire de simple guillemets (''))
INPUT_ARCHIVE nom de l'archive zip (crée pour exemple avec le programme zip, voir Info-ZIP) contenant le INPUT_FILE. (INPUT_FILE doit être règlé sur le nom du fichier dans l'archive zip.)
INPUT_FILE nom d'un fichier contenu InputForm d'un objet Graphics3D ou ShowAnimation. (Ce fichier doit être inclus dans l'archive zip, voir INPUT_ARCHIVE.)
MAGNIFICATION facteur de zoom (interactivement modifié en pressant SHIFT + glissement vertical) (voir ci-dessus))
MOUSE_DRAG_ACTION réaction de l'applet initiée par un glissement de la souris. (par défault c'est la rotation, utiliser NONE en argument pour désactiver la rotation, ce qui est utile pour les graphiques 2D.)
POINT_EDGE_COLOR couleur des bords de tous les points en forme hexadécimale
PRELOAD_BACKGROUND nom de fichier d'image JPEG ou GIF qui doit être affichée while other files are loaded and parsed
RIGHT_BACKGROUND nom de fichier pour une seconde image d'arrière plan pour l'oeil droit (doivent avoir la même taille)
SPHERICAL_BACKGROUND nom de fichier d'image JPEG ou GIF qui doit être affichée pour un arrière plan sphérique
SPIN_X vitesse de rotation par défaut autour d'un axe vertical, spécifié par le mouvement correspondant de la souris en pixels par frame. Le taux de frame est supérieur à 0.05 sec ou défini par l'option AnimationDisplayTime dans l'animation.
SPIN_Y pareil que SPIN_X pour une vitesse de rotation par défaut autour d'un axe horizontal.
STEREO_DISTANCE distance entre deux points de vue stéréos en unités de longueur de la diagonale du cadre (valeur positive values pour une fusion divergente, négative pour une fusion convergente; voir ci-dessus)
STRIPPED_PRIMITIVES nombre de primitives tronquées; la dernière primitive dans la liste (flattened) des primitives est tronquées (retirée) en premier
VISIBLE_FACES détermine quelles faces des polygônes sont dessinées. (Default is to draw both; la valeur FRONT ne fait que dessiner seulement des faces avant, la valeur BACK seulement les faces arrière.)
Paramètres de l'applet LiveGraphics3D.

Par défaut les images de fond seront toujours "centrées". (ViewPoint ne fera que changer l'apparence de l'objet Graphics3D et ne porte pas atteinte à l'image de fond, mais dans les cas de CYLINDRICAL_BACKGROUND et SPHERICAL_BACKGROUND l'arrière-plan peut être tourné d'abord avec INITIAL_ROTATION.) Il existe certaines restrictions sur rotativité des images, qui sont expliquées sur le la page d'exemple des oiseaux.

Si la valeur du paramètre INITIAL_ROTATION est une étiquette au lieu d'un nombre, l'applet sera dans la partie référente de l'URL (la partie la suite d'un "#") pour une définition de la forme "label = nombre" ou "label = nombre, le nombre ". Dans tous les cas, le premier nombre est interprété comme un angle de rotation en degrés relatif à un axe vertical, le deuxième numéro en option définit une rotation sur un axe horizontal. Malheureusement, cette fonctionnalité n'est pas prise en charge par de nombreux navigateurs Web.

Pour afficher des graphiques stéréo au lieu d'une seule image avec STEREO_DISTANCE, définir une valeur appropriée (par exemple avec la valeur par défaut de 0,05).

La production de InputFormS d'objets Graphics3D dans Mathematica est expliquée ci-dessous

Interfaçage avec J/Link (documentation mise à jour pour la version 1.90)

Avec l'aide de J/Link, qui est une partie de Mathematica, vous pouvez appeller LiveGraphics au sein de Mathematica. La dernière version de J/Link (actuellement 3.1.2) peut être téléchargée ici. l'appel d'un applet est examiné dans la documentation de Mathematica dans "Add-ons & Liens": J/Link : Part1 : Advanced Topics: ... Hosting Applets. Ici, je résume les principaux points et je présente quelques solutions pour des problèmes spécifiques avec LiveGraphics3D. Le lecteur est sensé avoir une connaissance de base de Mathematica et la possibilité d'exécuter des commandes Mathematica incluant J/Link.

Vous devez d'abord télécharger live.jar dans un répertoire sur votre ordinateur, nous l'appellerons dir.

Ensuite, vous pouvez démarrer Mathematica et une fois dans Mathematica, démarrer J/Link et dites à J/Link le chemin du répertoire dir où il peut trouver le fichier live.jar. (Pour les autres façons de commander J/Link pour un nouveau code Java, voir la documentation de J/Link.)


<< JLink`

InstallJava[];

AddToClassPath[dir];

Ici, dir doit être remplacé par une chaîne spécifiant le répertoire du fichier live.jar. Nous avons besoin d'une petite fonction pour produire un code approprié décrivant le graphique Mathematica tri-dimensionnel. La fonction LiveForm (décrite ci-dessous) est conçue pour effectuer cette tâche; il suffit seulement de convertir la valeur renvoyée à une chaîne, et à remplacer les double guillemets par des paires de guillemets simple parce que cela génère d'autres problèmes. Voici la définition de LiveForm:

LiveForm[graphics_, animOpts___] :=
Module[{graphics3d = Switch[graphics, _ContourGraphics,
Graphics3D[SurfaceGraphics[graphics]], _DensityGraphics,
Graphics3D[SurfaceGraphics[graphics]], _SurfaceGraphics,
Graphics3D[graphics], _, graphics]//.SequenceForm[x___]:>
StringForm[StringJoin[Table["``", {Length[{x}]}]], x]},
Switch[graphics3d, _List, HoldForm[ShowAnimation][
Map[LiveForm, graphics3d], InputForm[N[Flatten[{animOpts}]]]],
_, InputForm[N[graphics3d]]]];

Maintenant, nous allons faire quelques graphiques et appeller LiveGraphics3D avec:

g = Graphics3D[Plot3D[Re[Exp[x + I y]],
{x, -2, 2}, {y, -10, 10}, PlotRange->All,
PlotLabel->SequenceForm["Re",
StyleForm["(", FontSize->24],
Superscript["e", SequenceForm["x + ", "i y"]],
StyleForm[")", FontSize->24]],
AxesLabel->{"x", "y", None},
TextStyle->{FontSize->18, FontFamily->"Times"}]];

Nous pouvons appeller Live.class de LiveGraphics3D avec la fonction de J/Link AppletViewer:

AppletViewer["Live", {"INPUT="<>
StringReplace[ToString[LiveForm[g]],"\""->"''"],
"WIDTH=400", "HEIGHT=400"}]

Cela ouvrira une nouvelle fenêtre montrant l'applet. Vous pouvez obtenir quelques informations de l'applet par l'ouverture de la console Java avec:

ShowJavaConsole[]

et puis en appuyant sur la touche "O" dans l'applet viewer. LiveGraphics3D imprimera la plupart des valeurs en cours des options de la console Java.

Pour plus d'interaction avec l'applet LiveGraphics3D, nous avons besoin d'une instance de l'objet Java. Cela est obtenu de cette façon:

applet = JavaNew["Live"];

AppletViewer[applet, {"INPUT="<>
StringReplace[ToString[LiveForm[g]],"\""->"''"],
"WIDTH=400", "HEIGHT=400"}]

Maintenant, nous pouvons appeller l'applet par une méthode courante, par exemple:

applet@setMagnification[0.5]

Quand une instance d'applet n'est plus nécessaire, nous pouvons la libérer avec:

ReleaseJavaObject[applet]

Ceci est en fait un ensemble de méthodes disponibles pour contrôler l'applet. Toutes les méthodes retourne un boolean, c'est-à-dire soit True ou False indiquant s'elles sont réussies ou non. Certaines de ces méthodes sont liées à des paramètres de l'applet ou actions de la souris comme indiqué dans le tableau. Un autre tableau récapitule les fonctions d'interrogation des valeurs courantes. La syntaxe de l'appel au sein de Mathematica est toujours comme dans l'exemple ci-dessus: applet-variable@method-name[values-for-arguments].

méthode mise en oeuvre paramètres/action souris
boolean rotateToViewPointAndViewVertical(double vpx, vpy, vpz, vvx, vvy, vvz) rotation du point de vue (à part le point de vue initial) simple glissement
boolean setFrame(int new_frame_index) sets the frame index for animations ALT + glissement horizontal
boolean setGraphics3D(String input_text) sets a new Graphics3D object INPUT
boolean setGraphics3D(String input_text, String independent_vars, String dependent_vars) sets a new parameterized Graphics3D object INPUT, INDEPENDENT_VARIABLES, DEPENDENT_VARIABLES
boolean setInputFile(String input_file, String input_archive) sets a new input file (use null for input_archive if uncompressed) INPUT_FILE, INPUT_ARCHIVE
boolean setMagnification(double new_magnification) règle le facteur de magnification MAGNIFICATION, SHIFT + glissement vertical
boolean setPlotRange(double x_min, double x_max, double y_min, double y_max, double z_min, double z_max) règle le the plot range PlotRange option
boolean setSpin(double new_spin_x, double new_spin_y) règle le the spin velocity SPIN_X, SPIN_Y
boolean setStereoDistance(double new_stereo_distance) règle le the stereo distance (0: no stereo) STEREO_DISTANCE, CTRLglissement horizontal
boolean setStrippedPrimitives(int new_stripped_primitives_count) règle le the number of stripped primitives STRIPPED_PRIMITIVES, ALTglissement vertical
boolean setVariable(String name, double value) règle les variables indépendantes points de glissement
boolean setViewPointAndViewVertical(double vpx, vpy, vpz, vvx, vvy, vvz) règle le point de vue (courant et initial) options ViewPoint et ViewVertical
boolean startAnimation(), boolean stopAnimation() démarre/arrête l'animation double-clic
Méthodes courantes de contrôle d'une applet via J/Link.

méthode mise en oeuvre
int getFrame() agit sur l'index des frames d'animation
double getMagnification() agit sur le facteur de grossissement
double getPlotRangeXMin(), double getPlotRangeXMax(), double getPlotRangeYMin(), ... agit sur the plot range
double getSpinX(), double getSpinY() agit sur vitesse de rotation
double getStereoDistance() agit sur la distance stéréo
int getStrippedPrimitives() agit sur le nombre de primitives
double getVariable(String name) agit sur la valeur d'une variable
double getVersionNumber() agit sur le numéro de version de l'applet
double getViewPointX(), double getViewPointY(), ... agit sur le point de vue
double getViewVerticalX(), double getViewVerticalY(), ... agit sur la vue verticale
boolean isAnimationPlaying() détermine si une animation est en cours de lecture
Méthodes courantes d'interrogation d'une applet via J/Link.

Les graphiques paramétrés sont un type particulier de graphiques qui comprennent des variables. Elles sont examinés en détail ci-dessous. Ici, je ne donne qu'un petit exemple pour montrer comment les graphiques paramétrées sont appelés avec J/Link. Ce (très simple) exemple est construit au sein de Mathematica de cette façon:

independentVariables = {x->3, y->2, z->1};

dependentVariables = {mx->x/2, my->y/2, mz->z/2};


g = Graphics3D[{Line[{{0, 0, 0}, {x, y, z}}],
    PointSize[0.05], Point[{mx, my, mz}],
    PointSize[0.1], Point[{x, y, z}],
    Text[SequenceForm["x=", x], {x, y, z}, {0, 3}]},
    TextStyle->{FontSize->24}];


Show[g //. Join[independentVariables, dependentVariables]];

Après le démarrage de J/Link, en ajoutant le répertoire du fichier live.jar avec AddToClassPath et en définissant la fonction LiveForm comme ci-dessus, nous créons et affichons un objet de Java avec:

applet = JavaNew["Live"];

AppletViewer[applet, {"INPUT="<>
    StringReplace[ToString[LiveForm[g]],"\""->"''"],
    "INDEPENDENT_VARIABLES="<>
    ToString[InputForm[N[independentVariables]]],
    "DEPENDENT_VARIABLES="<>
    ToString[InputForm[N[dependentVariables]]],
    "WIDTH=400", "HEIGHT=400"}];

Il est maintenant possible de faire glisser le plus grand point en cliquant dessus avec le bouton gauche de la souris et en déplaçant la souris tout en maintenant le bouton appuyé. Les valeurs de variables peuvent être obtenues avec l'aide de la console Java et la touche "O" ou à l'aide de la fonction courante Java getVariable:

applet@getVariable["x"]

Les variables indépendantes peuvent aussi être fixées à de nouvelles valeurs avec l'aide de la fonction setVariable. Comme toujours, l'applet doit être libérée lorsque vous n'en avez plus besoin:

ReleaseJavaObject[applet]




   Par Martin Kraus. Certains droits réservés. (Traduction FR 06/2008, Franck Vernel).

◄◄ précédent   ▲▲ haut de page ▲▲  suivant ►► 

©2008 webmaster.

bottom corner