Date de mise à jour : 13 septembre 2010
BLT est une extension Tcl proposée par un groupe de programmeurs de logiciel libre. L'accès à l'ensemble du projet BLT (sources, documentation, etc.) est :
http://blt.sourceforge.net/.Les commandes de BLT sont très puissantes et permettent de personnaliser les graphes à souhait.
Dans la distribution Linux de AudeLA, BLT n'est pas fournie. Il faut la télécharger et la compiler. Dans la distribution Windows de AudeLA, BLT est fournie compilée et prête à l'emploi.
La librairie BLT n'est pas chargée par défaut dans AudeLA (mais elle l'est dans Aud'ACE). Il est nécessaire spécifier l'importation de la bibliothèque par la fonction load de Tcl :
load BLT24[info sharedlibextension]
dans l'interpréteur Tcl. La commande [info sharedlibextension] signifie à l'interpréteur Tcl d'ajouter,
automatiquement, les lettres correspondant au suffixe .dll ou .so en fonction du système d'exploitation.
Ci dessous, nous dressons la liste des commandes disponibles (la documentation en anglais peut être trouvée à http://tcltk.free.fr/blt/BLT.html#toc) :
table
: A table geometry manager for Tk. You specify window placements as table row,column positions and windows can also span multiple rows or columns. It also has many options for setting and/or bounding window sizes. graph
: A 2D plotting widget. Plots two variable data in a window with an optional legend and annotations. It has of several components; coordinate axes, crosshairs, a legend, and a collection of elements and tags. barchart
: A barchart widget. Plots two-variable data as rectangular bars in a window. The x-coordinate values designate the position of the bar along the x-axis, while the y-coordinate values designate the magnitude. The barchart widget has of several components; coordinate axes, crosshairs, a legend, and a collection of elements and tags. vector
: Creates a vector of floating point values. The vector's components can be manipulated in three ways: through a Tcl array variable, a Tcl command, or the C API. spline
: Computes a spline fitting a set of data points (x and y vectors) and produces a vector of the interpolated images (y-coordinates) at a given set of x-coordinates. bgexec
: Like Tcl's exec command, bgexec runs a pipeline of Unix commands in the background. Unlike exec , the output of the last process is collected and a global Tcl variable is set upon its completion. bgexec can be used with tkwait to wait for Unix commands to finish while still handling expose events. Intermediate output is also available while the pipeline is active.busy
: Creates a "busy window" which prevents user-interaction when an application is busy. The busy window also provides an easy way to have temporary busy cursors (such as a watch or hourglass). bitmap
: Reads and writes bitmaps from Tcl. New X bitmaps can be defined on-the-fly from Tcl, obviating the need to copy around bitmap files. Other options query loaded X bitmap's dimensions and data. drag&drop
: Provides a drag-and-drop facility for Tk. Information (represented by a token window) can be dragged to and from any Tk window, including those of another Tk application. drag&drop acts as a coordinator, directing Tk send commands between (or within) TCL/Tk applications. htext
: A simple hypertext widget. Combines text and Tk widgets into a single scroll-able window. Tcl commands can be embedded into text, which are invoked as the text is parsed. In addition, Tk widgets can be appended to the window at the current point in the text. Htext can be also used to create scrolled windows of Tk widgets. winop
: Raise, lower, map, or, unmap any window. The raise and lower functions are useful for stacking windows above or below "busy windows". watch
: Arranges for Tcl procedures to be called before and/or after the execution of every Tcl command. This command may be used in the logging, profiling, or tracing of Tcl code. bltdebug
: A simple Tcl command tracing facility useful for debugging Tcl code. Displays each Tcl command before and after substitution along its level in the interpreter on standard error.toplevel .testblt
blt::graph .testblt.g
pack .testblt.g -in .testblt
blt::vector create vx
vx set {0 1 2 3 4 5 6 7 8 9}
blt::vector create vy
vy set {0 1 4 9 16 25 36 49 64 81}
.testblt.g element create line1 -symbol none -xdata vx -ydata vy -smooth natural
En retour, on a le graphe suivant :