Updated 2014-11-20 14:59:58 by pooryorick

Summary  edit

SVG-like rendering for the canvas

Attributes  edit

Mats Bengtsson
de-facto maintainer
Andrew Shadura

Examples  edit

Examples of drawing with Tkpath
arjen 2013-04-11 06:30:07: I have been experimenting with Tkpath a bit.
tkpath - clock
illustraties antialias functionality on an analog clock

Description  edit

Tkpath implements path drawing modeled after SVG. It is very flexible and reproduces all standard drawing canvas items. Features include: opacity, antialiasing, gradient fills, affine transformations, and fill rules. Backends include: CoreGraphics on MacOSX, GDI on Win32, GDI+ on WinXP, Cairo on X11, and Tk drawing as a fallback. Not all backends support all features.

Releases  edit

Roy Terry: Released on 2006-07-16. Includes numerous more specialized canvas items sharing the visual traits of the original "path" item and also includes radial patterned gradients. No new release files are available at this time but cvs holds pre-built binaries. See Announce, Tkpath 0.2, 2006-07-16
adds a ptext text item which supports the same drawing model as the other tkpath items.
announed in 2008-01, is a Tk 8.5 only release (no backward compatibility).
see the section below
a response to the issues discussed in New Canvas, tkpath 0.3.0 release, 2008-07-17

Release: 0.3.0  edit

Tkpath 0.3.0 provides a new canvas widget that is supposed to be 100% compatible with tk::canvas. My major motivation for creating this package was to make something that maps well with SVG graphics.

Tkpath adds mainly two things:

  1. A number of new item types with options that map easily to SVG objects.
  2. A display tree hierarchy with some fancy option inheritance.

The new items are:

  • circle
  • ellipse
  • group
  • path
  • pimage
  • pline
  • polyline
  • ppolygon
  • prect
  • ptext

Most of them can be configured using styles. Instead of setting similar options for each of them, it is possible to create a style, and then use this style for each similar item. When a style is configured, each item using it will be redisplayed.

Using the group item you create a "directory" in the item hierarchy which acts similar to a frame in the widget hierarchy except that options set to the group may be inherited by child items.

The only documentation currently is README.txt, which is very sparse.

Perhaps the easiest way to describe it is to look at these screen shots. Look at the tkpath links.

Note that previous tkpath releases used the tk::canvas item type plugin model for the new item types. This is no longer possible.

Download: just do a cvs checkout and build yourself, or just use the pre-built binaries found in the cvs tree. The only non-standard dependency is on cairo-graphics which is getting common in later linux distros.

Current State  edit

The current maintainer of the project seems to be Andrew Shadura. (The original developer, Mats Bengtsson passed away in 2008.) Andrew's repo is available here.

I got no reply under Ask and it shall be given so try again.

2013-04-13: I'm trying to install tkpath on Windows XP - I have tcl8.6 installed and works. The instructions say 'download from cvs and install'. I downloaded the binaries from cvs, I put it in /tcl and it is not accessible. The demos don't work. The code doesn't work. How did other users install it? When I know I will update the instructions to be useful.

ekd123 tkpath has been in TEApot IIRC.

Discussion  edit

yyamasak 2012-06-05: I tried 0.3.1 using an analog clock sample (tkpath - clock). I had to redraw clock hands explicitly by calling "event generate .uhr <Configure>". It seems "coord" canvas subcommand does not perform redrawing.

[andras] 2014-07-31: If you are looking for advanced examples, some current users of TkPath:

  • Georgios Petasis' Ellogon application (Ellogon 1.9.x uses TkPath 0.2.6)
  • L2Ork's PD project, their repo includes a TkPath fork (link).
  • Jonas Ferry's TclRobots project (link). TkPath binaries are checked in under lib/tkpath.

escargo 2014-08-01: The README file provided by the github link for Jonas Ferry's TclRobots project above refers to tclrobots.org, which no longerseems to be available. I did find a copy in the Internet Archive: https://web.archive.org/web/20140104074744/http://tclrobots.org/

I couldn't tell what else in the REAMDE might be out of date.