4 years agotrihexaflexagon: clarify the formula in get_angle_in_plan_relative_to_hexagon()
Antonio Ospite [Thu, 28 Jun 2018 10:42:08 +0000 (12:42 +0200)]
trihexaflexagon: clarify the formula in get_angle_in_plan_relative_to_hexagon()

Write the formula in a clearer way and explain the meaning of the
integer division.

4 years agoChange how a trihexaflexagon is drawn
Antonio Ospite [Wed, 27 Jun 2018 13:48:35 +0000 (15:48 +0200)]
Change how a trihexaflexagon is drawn

Change how a trihexaflexagon is drawn to obtain a hexaflexagon more
aligned with conventions used elsewhere.

Now the hexagons are drawn with a "vertical orientation", opposed to the
previous horizontal one where they looked like they were laying on the
x axis.

This shows more clearly that the triangles are grouped in couples and
these couples only change orientation on one axis when shown on the
"opposite" face.

To have a clearer view of hat that means take a look at "The symmetry
within the trihexaflexagon, with Simon Pampena":

4 years agotetraflexagon_diagram: fix typo
Antonio Ospite [Wed, 27 Jun 2018 15:34:09 +0000 (17:34 +0200)]
tetraflexagon_diagram: fix typo

The function is called calc_angle_in_plan().

4 years agohexaflexagon_diagram: reuse get_triangle_center_in_plan()
Antonio Ospite [Wed, 27 Jun 2018 13:05:06 +0000 (15:05 +0200)]
hexaflexagon_diagram: reuse get_triangle_center_in_plan()

Reuse get_triangle_center_in_plan() also in draw_plan_template() instead
of open coding the calculations.

4 years agoAdd an example to show how Inkscape can be used as a tetraflexagon editor
Antonio Ospite [Wed, 27 Jun 2018 10:07:51 +0000 (12:07 +0200)]
Add an example to show how Inkscape can be used as a tetraflexagon editor

4 years agoAdd support for tetraflexagons
Antonio Ospite [Wed, 27 Jun 2018 09:31:05 +0000 (11:31 +0200)]
Add support for tetraflexagons

4 years agosvgwrite_diagram: add a test function
Antonio Ospite [Tue, 26 Jun 2018 14:18:31 +0000 (16:18 +0200)]
svgwrite_diagram: add a test function

Add a test function similar to the one used in the cairo backend.

Add also the same workaround to handle local includes in python2.

4 years agosvgwrite_diagram: return "something" from draw_centered_text()
Antonio Ospite [Tue, 26 Jun 2018 14:15:36 +0000 (16:15 +0200)]
svgwrite_diagram: return "something" from draw_centered_text()

Add a quick and dirty way to advance text when calling
draw_centered_text() just for consistency with the cairo backend.

The return value is just a rough estimate, it does not consider the
particular font in use.

4 years agocairo_diagram: save a file when generating the test diagram
Antonio Ospite [Tue, 26 Jun 2018 14:14:29 +0000 (16:14 +0200)]
cairo_diagram: save a file when generating the test diagram

4 years agodiagram: factor out a generic drawing test
Antonio Ospite [Tue, 26 Jun 2018 14:02:35 +0000 (16:02 +0200)]
diagram: factor out a generic drawing test

Factor out from cairo_diagram.py some code which draws a test diagram
and put it into diagram.py

4 years agosvgwrite_diagram: implement draw_circle, draw_line and draw_rect
Antonio Ospite [Tue, 26 Jun 2018 13:49:50 +0000 (15:49 +0200)]
svgwrite_diagram: implement draw_circle, draw_line and draw_rect

Complete the implementation of the svgwrite diagram backend by
implementing the missing methods.

4 years agosvgwrite_diagram: proper support for stroke_width
Antonio Ospite [Tue, 26 Jun 2018 13:46:14 +0000 (15:46 +0200)]
svgwrite_diagram: proper support for stroke_width

Support stroke_width for all drawing operations that call the _stroke()
method, and remove ad-hoc support for draw_polygon_by_verts() and

4 years agosvgwrite_diagram: implement the clear() method
Antonio Ospite [Tue, 26 Jun 2018 13:45:24 +0000 (15:45 +0200)]
svgwrite_diagram: implement the clear() method

4 years agodiagram: move draw_rect_from_center to the generic Diagram class
Antonio Ospite [Tue, 26 Jun 2018 13:42:26 +0000 (15:42 +0200)]
diagram: move draw_rect_from_center to the generic Diagram class

Move draw_rect_from_center from cairo_diagram.py to diagram.py as it
does not depend on any specific backend.

5 years agoTODO: mention that showing the "wrong" faces could be useful too
Antonio Ospite [Wed, 4 Apr 2018 10:50:25 +0000 (12:50 +0200)]
TODO: mention that showing the "wrong" faces could be useful too

5 years agoAdd an example to show how Inkscape can be used as a flexagon editor
Antonio Ospite [Tue, 30 Jan 2018 11:18:15 +0000 (12:18 +0100)]
Add an example to show how Inkscape can be used as a flexagon editor

5 years agoInitial import
Antonio Ospite [Mon, 29 Jan 2018 14:31:26 +0000 (15:31 +0100)]
Initial import