Version 28 of tkpath

Updated 2014-07-31 15:17:45 by andras

Summary

SVG-like rendering for the canvas

Attributes

Name
tkpath
Author
Mats Bengtsson
Website
http://sourceforge.net/projects/tclbitprint
License
BSD
Documentation
tkpath-0.1
Categories
GUIs
Link
http://sourceforge.net/projects/tclbitprint
Link
http://www.w3.org/TR/SVG11/
Link
http://www.visit.se/~matben/
Link
http://cairographics.org/

Examples

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

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

0.2
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
0.2.2
adds a ptext text item which supports the same drawing model as the other tkpath items.
0.2.8
announed in 2008-01, is a Tk 8.5 only release (no backward compatibility).
0.3.0
see the section below
0.3.1
a response to the issues discussed in New Canvas, tkpath 0.3.0 release , 2008-07-17

Release: 0.3.0

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

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.

Discussion

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 ).