Tk::Zinc: an OpenGl replacement to Tk::Canvas

By Christophe Mertz from
Date: Thursday, 24 July 2003 09:00
Duration: 40 minutes

TkZinc widget is similar to Tk::Canvas in that they both support semi-structured 2D graphics.
Like the Tk::Canvas, TkZinc implements items used to display graphical entities. Those items
can be manipulated and bindings can be associated with them to implement interaction
behaviours. The following features can be viewed as extensions to the Tk::Canvas:
- TkZinc can strongly structure the items in a hierarchy (with the use of group items),
- TkZinc has support for affine 2D transforms (i.e. translation, scaling, and rotation),
- TkZinc can clip sub-trees of the items hierarchy,
- the item set is quite more powerful including field specific items for Air Traffic
- TkZinc offers the support of openGL rendering techniques such as anti-aliasing,
transparency, colour gradients as well as the support of an openGL oriented item :

TkZinc makes it easy to use some OpenGL features for 2D Human Computer Interaction (HCI).
Finally, if needed, it is also possible to extend the item set through an additional
dynamic library and the use of a C api.

During the talk we will present the following features :
- ATC (or more generally radar-view) oriented items: track, waypoint and tabular are
items combining both a zoomable part and non-zoomable textual part
- The curve items implements both polylines and Bezier segments. Curves can have
more than one contour and support different fill-rules
- Group items and there usage for structuring an application, bundling items, clipping,
and managing transformations
- Extensions to the Tk::Canvas tag, such as accessing item subparts (for track, waypoint
or tabular items), and pathTags to access subparts in the group hierarchy
- Triangles items, available only with openGL
We will also do many demonstrations of some very smart applications applied either to Air
Traffic Control HCI or to more general HCI. Most of these applications will demonstrate the
graphic capabilities of TkZinc. We will also demonstrate a converter from SVG to TkZinc.

For the fun, we plan to give the talk with slides based on zpresenter, a TkZinc port of
ppresenter, which take advantage of some TkZinc features.

TkZinc is currently used on linux / unix hosts, with scripting languages, either Perl/Tk,
Tcl/Tk, or Python/Tk bindings. A port is under way for Windows hosts and currently works
with the Tcl/Tk binding. Hopefully will it work with Perl/Tk at the time of YAPC::EU 2003.

TkZinc is available under the LGPL licence. It is bundled with an exhaustive reference
manual, as well as a set of small demonstrations bundled under the zinc-demos (a script
similar to the widget demonstration script of Perl/Tk). A module, name, is also
available as an application independent interactive browser.

TkZinc is successfully used for HCI prototyping for more than 4 years at the CENA (French
research Centre in Air Traffic Management,) located both at Athis-Mons and Toulouse. There
are currently around 20 users at the CENA, as well as half a ten users at Intuilab, a CENA

Template talk/show last modified at 12:26:25 27-Jul-2013
All content copyright © 2003 Yet Another Society, Inc.
for any question about this site or YAPC::EU 2003, mail to <>.
XHTML and CSS validation.