Satimage Précédent
Réalisation de graphiques par script
Accueil Documentation SmileLab Scripting Réalisation de graphiques  
Cette section présente les informations concernant la création et la manipulation de graphiques par script. Comme vous pourrez le voir, cela consiste essentiellement à utiliser avec AppleScript la suite SmileLab du dictionnaire de Smile.
Création d'un nouveau graphique
  • Pour créer un nouvel objet, utilisez make new, suivi par la classe de l'objet à créer. La commande make new renvoie une référence à l'objet créé.
    set w to make new graphic window
  • Si l'objet doit appartenir à un nouvel objet (son container), utilisez la préposition at.
    set v to make new plot view at w
    set c to make new curve at v
    Jusqu'ici nous avons créé des objets vides : dans les pages qui suivront, vous verrez comment définir les données d'un objet graphique en assignant des valeurs à ses propriétés. Par exemple, les lignes suivantes correspondent à l'affichage d'une courbe :
    set w to make new graphic window
    set v to make new plot view at w
    set c to make new curve at v
    set c's xdata to {1, 2, 3, 4, 5}
    set c's ydata to {1, 4, 9, 16, 25}
    draw w


    Import script
  • Pour définir des propriétés à la création de l'objet, utilisez le paramètre with properties. Certaines propriétés doivent être définies à la création de l'objet, et ne peuvent plus être modifiés par la suite. Par exemple, la propriété template d'une graphic window.
    set w to make new graphic window with properties {pagewidth: 3 as inches, pageheight: 9/4 as inches, template: "GrayGraphicWindow.plist"}
Enregistrement d'un graphique
Lorsque vous enregistrez un graphique par script, vous pouvez spécifier le format du fichier de différentes manières.
  • vous pouvez utiliser la préposition as pour indiquer le format du document, sous forme de texte : "bundle" pour faire une bundle, "PDF " pour un PDF, "JPEG" pour un JPEG, "PNGf" pour un PNG, "TIFF" pour un TIFF, "BMPf" pour un BMP, et "8BPS" pour un PSD (Photoshop). L'exemple suivant enregistre une fenêtre graphique dans un bundle.
    set the_dt to (path to desktop as text)
    save window 2 in file (thedt & "document") as "bundle"
  • sans utiliser la préposition as, vous pouvez donner une extension appropriée à votre nom de fichier, ce qui déterminera le format du document créé. Donnez l'extension ".bundle" pour enregistrer un bundle, ".pdf" pour un PDF, ".jpg" pour un JPEG, ".png" pour un PNG, ".tiff" pour un TIFF, ".bmp" pour un BMP, et ".psd" pour un PSD (Photoshop). L'exemple suivant enregistre une fenêtre graphique dans un PNG.
    set the_dt to (path to desktop as text)
    save window 2 in file (thedt & "document.png")
  • par défaut, si Smile n'arrive pas à reconnaître le format voulu, il enregistrera les fenêtres graphiques sous forme de document PDF. La ligne suivante enregistre une fenêtre graphique dans un document PDF :
    set the_dt to (path to desktop as text)
    save window 2 in file (thedt & "document")
  • Making a QuickTime movie
Pour se référer à des fichiers dans AppleScript, vous pouvez manipuler deux types différents : les alias et les file specification. Un fichier existant correspond à un alias de la forme alias "path:to:the:file". Pour se référer à un fichier qui n'existe pas encore, par exemple pour fournir une référence de fichier à une commande qui va le créer, utilisez les file specification de la forme file "path:to:the:file".
Suppression d'un graphique
Vous pouvez supprimer un objet en utilisant la commande delete.
set w to make new graphic window
delete w
Notez l'existence de l'événement close. L'événement close est envoyé aux fenêtres lorsque l'utilisateur cherche à la fermer, même lorsque cette opération n'est finalement pas effective.
Référence à un objet graphique
  • ous pouvez vous référer à un objet en utilisant le nom de sa classe, suivi soit par son nom (propriété name) ou son index. Si l'objet appartient à un autre objet, vous devez utiliser la préposition of pour chacun des contenants, jusqu'à l'application (qui est toujours un conteneur implicite).
    set w to window "untitled 8"
    set v to plot view 1 of w
  • La propriété container renvoie une référence au conteneur de l'objet, son parent direct dans la hiérarchie.
    set w to window "untitled 8"
    set v to plot view 1 of w
    w is container of v
      -- true
  • Pour tous les objets graphiques contenus dans une graphic window, la propriété window renvoie une référence à la graphic window qui contient cet objet.
    set c to QuickCurve(0, "x", 0)
    set c's formula to "x^3"
    draw c's window
Pour obtenir plus de détails sur la façon de se référer aux objets de Smile, cliquez ici.
Pilotage d'un graphique
Piloter un objet dans Smile consiste essentiellement à lire et à modifier les valeurs de ses propriétés.
  • vous obtenez la valeur courante d'une propriété d'un objet en utilisant la commande get. En toutes circonstances, get permet d'évaluer une référence.
    set d to (get dash of (get curve 3 of v))
  • vous pouvez assigner une valeur à une propriété d'un objet en utilisant la commande set :
    set formula of c to "x^3"
  • ous pouvez assigner en une fois plusieurs valeurs à différentes propriétés en utilisant la propriété spéciale properties comme dans l'exemple ci-dessous qui réalise une courbe et en une ligne de commande lui fournit des données, supprime le tracé des lignes, et définit la forme des points à des carrés rouges de 12 pixels de côtés.
    set w to make new graphic window
    set v to make new plot view at w
    set c to make new curve at v
    set x to {1, 2, 3, 4, 5}
    set y to {1, 4, 9, 16, 25}
    set properties of c to {xdata:x, ydata:y, line style:0, pattern style:2, pattern size:12, fill color:2}
    draw w


    Import script
QuickPlotLib, la bibliothèque de fonctions de visualisation
SmileLab inclut une bibliothèque de fonctions nommée QuickPlotLib, qui permet de réaliser des graphiques en seulement quelques lignes.
QuickPlotLib est une bibliothèque AppleScript. Smile charge automatiquement QuickPlotLib à son démarrage, ce qui rend ses routines disponibles à n'importe quel script exécuté dans Smile, sous quelque forme que ce soit.
English version
Copyright ©2008 Paris, Satimage