diff --git a/svg-demo/svg_dump.py b/svg-demo/svg_dump.py index 1445e69..a0eff05 100755 --- a/svg-demo/svg_dump.py +++ b/svg-demo/svg_dump.py @@ -3,8 +3,11 @@ import yaml -CASE_WIDTH = 48 -CASE_HEIGHT = 72 +BLOCK_LENGTH = 12 +BLOCK_DISTANCE = 4 + +CASE_WIDTH = BLOCK_LENGTH * 4 + BLOCK_DISTANCE * 5 +CASE_HEIGHT = BLOCK_LENGTH * 5 + BLOCK_DISTANCE * 6 CASE_DISTANCE_X = 80 CASE_DISTANCE_Y = 40 @@ -14,30 +17,6 @@ MAIN_MARGIN_Y = 8 LINK_OFFSET = 1 -# layer = [ -# ["603EDF5CAFFF5E2"], # layer 0 -# ["61BEC75CAFFF5E2","0C3EDF5CAFFF5E2"], # layer 1 -# ["0DBEC75CAFFF5E2","EC34DF1CAFFF5E2"], # layer 2 -# ["EDB4C71CAFFF5E2","EC34DFE42FFF5E2"], # layer 3 -# ["EDB4C7E42FFF5E2"], # layer 4 -# ["EDB4F8E50FFF5E2"], # layer 5 -# ] -# -# link = [[ -# [0, 1] # (0, 0) -> 1 -# ], [ -# [0], # (1, 0) -> 2 -# [0, 1] # (1, 1) -> 2 -# ], [ -# [0], # (2, 0) -> 3 -# [0, 1], # (2, 1) -> 3 -# ], [ -# [0], # (3, 0) -> 4 -# [0], # (3, 1) -> 4 -# ], [ -# [0], # (4, 0) -> 5 -# ]] - raw_data = yaml.load(open('demo.yml').read(), Loader = yaml.FullLoader) layer = raw_data['layer'] link = raw_data['next'] @@ -54,6 +33,7 @@ MAX_CASE_Y = len(layer) MAX_WIDTH = MAX_CASE_X * CASE_WIDTH + (MAX_CASE_X - 1) * CASE_DISTANCE_X + def case_address(layer_num: int, layer_index: int) -> (int, int): case_number_x = len(layer[layer_num]) @@ -81,9 +61,9 @@ def link_address(start_layer_num: int, start_layer_index: int, end_layer_num: in ) -def svg_rect(left: int, top: int, width: int, height: int): - return '' % ( - left, top, width, height +def svg_rect(left: int, top: int, width: int, height: int, line_width: int): + return '' % ( + left, top, width, height, line_width ) @@ -92,6 +72,19 @@ def svg_line(start_x: int, start_y: int, end_x: int, end_y: int): start_x, start_y, end_x, end_y ) + +def case_output(info: list, x_offset: int, y_offset: int): + print(' ', svg_rect(x_offset, y_offset, CASE_WIDTH, CASE_HEIGHT, 2)) + for (x, y, h, w) in info: + + left = BLOCK_LENGTH * x + BLOCK_DISTANCE * (x + 1) + x_offset + top = BLOCK_LENGTH * y + BLOCK_DISTANCE * (y + 1) + y_offset + width = BLOCK_LENGTH * w + BLOCK_DISTANCE * (w - 1) + height = BLOCK_LENGTH * h + BLOCK_DISTANCE * (h - 1) + + print(' ', svg_rect(left, top, width, height, 1)) + + MAIN_WIDTH = MAX_CASE_X * CASE_WIDTH + (MAX_CASE_X - 1) * CASE_DISTANCE_X + MAIN_MARGIN_X * 2 MAIN_HEIGHT = MAX_CASE_Y * CASE_HEIGHT + (MAX_CASE_Y - 1) * CASE_DISTANCE_Y + MAIN_MARGIN_Y * 2 @@ -100,17 +93,13 @@ print('