Summary editSVG-like rendering for the canvas
- Mats Bengtsson
- de-facto maintainer
- Andrew Shadura
- 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 editTkpath 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.
- 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 editTkpath 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:
- A number of new item types with options that map easily to SVG objects.
- A display tree hierarchy with some fancy option inheritance.
Current State editThe 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.RZ As of 2015-07-03 one can choose from 3 sources:dzach 2015-11-17: AndroWish's tkpath seems to be actively maintained with frequent bugfixes and improvements.RZ I know because I'm contributed some patches :) My goal was only pdf creation support but amazing Christian fixed also some other errors.I tried at first the sources from Andrew's repository. I changed the 'canvas' command to 'tkp::canvas' and removed the '-angle' option from text entries. Then my drawing application started. The only visible difference was the much smaller text strings. I will try it some more. dzach: You probably need to set both -fontfamily and -fontsize options, as these are a bit different than the -font option of the tk canvas.chw 2015-11-27: the source code included in AndroWish now supports PDF output thanks to RZ's work. It uses a slightly modified pdf4tcl (also included in AndroWish) for the overall PDF framework. Minor differences to screen output still exist: the PDF routines currently are not able to produce exact output for the special gradient fill methods "repeat" and "reflect". Everything else (including image rotation, tinting, tiling, transparency) should work as designed. It should (cross)compile cleanly for Linux, Windows, and Android.dzach 2015-11-27: Keeping the same version of AndroWish tkpath as the other implementations may be a problem, since the code is not the same anymore. How about giving it a 0.3.3.1 version, like you did with pdf4tcl, or a new 0.3.4, so that it could be specifically package requested by this version?
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 edityyamasak 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.
[petersteier] - 2015-09-09 14:45:34I tried out to install the package under Ubuntu Server 14.04 LTS (Tcl patchlevel 8.6.1, with apt-get install tcl-dev, tk-dev, libcairo2-dev); a version that worked is from L2Ork's PD project (see above): , look in sub-directory pd. It displays the version number 0.3.3. I did not try the repos mentioned here (but was distracted by lots of other wrong information on the web). With ActiveTcl 8.6.1 teacup install does not find tkpath, teacup get downloads several versions, none of which can be installed. Either the config-pathes are wrong, the libcairo2 is incompatible during compiling, or precompiled ELFs are for 32 bit. Also the "original(?)" http://sourceforge.net/projects/tclbitprint/files/ does not work.arjen's ven.tcl example looks very nice (and antialiased), however, tkpath-clock looks unchanged, even if the "widget" in the source file is changed to "tkp::widget". Is this behaviour correct? Sould the indexes no be antialiased?
[pup] - 2015-09-15 10:58:17canvas_path postscript -file /tmp/tmp123.ps cannot work.RZ AFAIK postscript output is not implemented in tkpath. If you stick with normal tk canvas items you can use pdf4tcl to print the canvas items. Tkpath items (path, ppolygon etc.) are not (currently?) supported.