tetraflexagon_diagram: add a function to calculate the tile offset in a square
authorAntonio Ospite <ao2@ao2.it>
Wed, 27 Jun 2018 18:19:10 +0000 (20:19 +0200)
committerAntonio Ospite <ao2@ao2.it>
Thu, 28 Jun 2018 14:45:09 +0000 (16:45 +0200)
src/flexagon/tetraflexagon_diagram.py
src/flexagon/tritetraflexagon.py

index 5d810de..ab3da17 100755 (executable)
@@ -54,9 +54,8 @@ class TetraflexagonDiagram(object):
 
             for tile in square.tiles:
                 # offset by 1 or -1 times the tile radius
 
             for tile in square.tiles:
                 # offset by 1 or -1 times the tile radius
-                tile_cx = cx + self.tile_radius * ((tile.index % 2) * 2 - 1)
-                tile_cy = cy + self.tile_radius * ((tile.index > 1) * 2 - 1)
-                self.tiles_centers[square.index][tile.index] = (tile_cx, tile_cy)
+                tile_xoffset, tile_yoffset = tile.calc_offset_in_square(self.tile_side)
+                self.tiles_centers[square.index][tile.index] = (cx + tile_xoffset, cy + tile_yoffset)
 
     def get_square_center(self, square):
         return self.squares_centers[square.index]
 
     def get_square_center(self, square):
         return self.squares_centers[square.index]
index 8a70069..767d42f 100755 (executable)
@@ -25,6 +25,12 @@ class Tile(object):
         self.square = square
         self.index = index
 
         self.square = square
         self.index = index
 
+    def calc_offset_in_square(self, side):
+        xoffset = side / 2 * ((self.index % 2) * 2 - 1)
+        yoffset = side / 2 * ((self.index > 1) * 2 - 1)
+
+        return xoffset, yoffset
+
     @staticmethod
     def calc_plan_coordinates(side, i, j):
         xoffset = side / 2 + j * side
     @staticmethod
     def calc_plan_coordinates(side, i, j):
         xoffset = side / 2 + j * side