From: Antonio Ospite Date: Wed, 27 Jun 2018 18:19:10 +0000 (+0200) Subject: tetraflexagon_diagram: add a function to calculate the tile offset in a square X-Git-Url: https://git.ao2.it/flexagon-toolkit.git/commitdiff_plain/382e2be48ae8f3914bb443f27f5091c730095e6c?ds=sidebyside tetraflexagon_diagram: add a function to calculate the tile offset in a square --- diff --git a/src/flexagon/tetraflexagon_diagram.py b/src/flexagon/tetraflexagon_diagram.py index 5d810de..ab3da17 100755 --- a/src/flexagon/tetraflexagon_diagram.py +++ b/src/flexagon/tetraflexagon_diagram.py @@ -54,9 +54,8 @@ class TetraflexagonDiagram(object): 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] diff --git a/src/flexagon/tritetraflexagon.py b/src/flexagon/tritetraflexagon.py index 8a70069..767d42f 100755 --- a/src/flexagon/tritetraflexagon.py +++ b/src/flexagon/tritetraflexagon.py @@ -25,6 +25,12 @@ class Tile(object): 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