tkzgeom icon indicating copy to clipboard operation
tkzgeom copied to clipboard

Comparison to other TikZ GUIs?

Open xukai92 opened this issue 3 years ago • 1 comments
trafficstars

Just wonder how this tool is different from other TikZ GUIs such as https://tikzit.github.io/, regarding features, motivations, limitations, etc.

xukai92 avatar Jun 16 '22 14:06 xukai92

Thank you for your question and interest in TkzGeom.

I've been planning to make a user guide/tutorial most likely in a video format that would highlight the capabilities of TkzGeom but unfortunately, it won't commence until I implement the last features. This would probably answer your question best.

This is the first time I've heard about a different TikZ GUI app. I've had a look at TikZIt now, and I mostly understand it, but I would need more time to understand its optimal workflow and possibilities.

My main source of inspiration is the software called GeoGebra (maths teaching and research tool), its structural integrity provides the backbone of the software. Here is a screenshot from Geogebra:

example-geogebra-image

The goal was to have a Geogebra-style interface where the objects on the canvas are defined in the GeoGebra way. The canvas is visualised in real-time (plus the little time needed for compilation) using LaTeX/TikZ.

The interface has three main GUI elements (similar to GeoGebra):

  • top row - used for object creation
  • canvas - displays the figure and where the mouse interactions take place
  • side pane - used for the modification of the existing canvas objects

The program contains two different visual fields/layers. One is a visualisation of all canvas objects (visible or invisible); the other is the TikZ PDF output. The first layer can be overlaid above the PDF (this is the default now).

TkzGeom differentiates 5 different objects: points, circles, segments, linestrings (polygonal chain), and polygons.

From what I saw in TikzIt, here is a fair comparison between TkzGeom and TikZIt. I apologise to you and the TikZIt team if any of it is not fair or wrong.

The limitations of TkzGeom compared to TikZIt

  • in TkzGeom, for visual feedback texlive >=2019 is needed (7-8 gigs), TikzIt has a build-in reverse engineered way to visualise without compilation
  • in TkzGeom one has to wait for the compilation to finish
  • TikZIt GUI follows the modification of an edge, TkzGeom GUI is not responsive to bends (only the PDF output)
  • TikZIt has the ability to fill custom paths, TkzGeom doesn't
  • in TikZIt each object can have any options, TkzGeom works with predefined options (*)
  • TikzIt has control over the order objects are drawn on the canvas, TkzGeom doesn't (for now)

*: in TkzGeom one can reference user-defined coordinate variables in custom TikZ code defined in the GUI, making this limitation obsolete (this is how electric circuits can be made)

The limitation of TikzIt compared to TkzGeom

  • TkzGeom has the concept of dependent objects (segment midpoint, translated point, rotated point, ...), TikzIt only has free points (more about it here)
  • TikZIt points can only take discrete positions on the canvas
  • requires a good amount of TikZ knowledge
  • TikZIt is natively susceptible to LaTeX errors because of the freedom with the options (e.g. typo in option name)
  • In TikZIt for each style there is one file stored on the hard-drive that needs management
  • TikzIt lacks mass editing, in TkzGeom multiple objects can be selected (CTRL+SHIFT+click or CTRL+click or CTRL+all) and each selected object will undergo the same change

Dependent objects

Imagine that we want to create a figure that includes its mirror figure. In TkzGeom we can do the following:

  • add the first set of points,
  • add two invisible points forming the axis of reflection,
  • create the orthogonal projection of the first set of points on the axis,
  • mirror each point across its orthogonal projection to the other side.

Now if we change the figure in the first set, the change is reflected in its mirror image (second set). This relationship is preserved in the TikZ code as well, thanks to the tkz-euclide package.

Please let me know if this response was helpful, and don't hesitate to ask, should you have further questions.

Kristof

csekri avatar Jun 28 '22 21:06 csekri

Thanks for the detailed comments, Kristof. I'm not part of the TikZiT team; I'm just a user who really like your software :) It might be helpful for you to highlight some of the differences to other similar software in your README.md.

xukai92 avatar Jun 27 '23 04:06 xukai92