diff --git a/components/exit.py b/components/exit.py index 9848915..458ba57 100644 --- a/components/exit.py +++ b/components/exit.py @@ -6,10 +6,12 @@ from settings import * class ExitComponent: - def __init__(self, seq, sub) -> None: + def __init__(self, left, seq, sub) -> None: self.seq = seq self.sub = sub self.p_height = 50 * SCALE + self.left = left + self.top = '左' self.name = '出口' self.name_size = 20 * SCALE self.seq_size = 40 * SCALE @@ -31,8 +33,13 @@ class ExitComponent: rect = DoubleStrokeRectComponent(self.width(), self.p_height, COLOR_GREEN, COLOR_WHITE, 2 * SCALE, 8 * SCALE) rect.draw(container, x, y) + name_y = y + (self.p_height - 2 * self.name_size) / 2 + self.name_size if self.left else y + (self.p_height - self.name_size) / 2 name = TextAComponent(self.name, COLOR_WHITE, self.name_size) - name.draw(container, x + self.inset, y + (self.p_height - self.name_size) / 2) + name.draw(container, x + self.inset, name_y) + + if self.left: + top = TextAComponent(self.top, COLOR_WHITE, self.name_size) + top.draw(container, x + self.inset + (name.width() - top.width()) / 2, y + (self.p_height - 2 * self.name_size) / 2) container.add(container.ellipse(center=(x + self.inset * 2 + self.rx + self.name_width, y + self.p_height / 2), r=(self.rx, self.ry), fill=COLOR_WHITE)) diff --git a/main/main.py b/main/main.py index cf0316f..3dbc9eb 100644 --- a/main/main.py +++ b/main/main.py @@ -44,15 +44,20 @@ obj_type = data.get('type') # exit if obj_type == 0: bottom_name = 'forward' -elif obj_type == -1: - exit() -elif obj_type == 1: +else: exit_info = data.get('exit') exit_seq = exit_info.get('seq') or '' exit_sub = exit_info.get('sub') or '' - exit_item = ExitComponent(exit_seq, exit_sub) + if obj_type == -1: + exit_item = ExitComponent(True, exit_seq, exit_sub) + bottom_name = 'forward' + elif obj_type == -2: + exit_item = ExitComponent(True, exit_seq, exit_sub) + bottom_name = 'left' + elif obj_type == 1: + exit_item = ExitComponent(False, exit_seq, exit_sub) + bottom_name = 'exit' exit_height = exit_item.height() - bottom_name = 'exit' data_file_name = '{}_{}'.format(bottom_name, time.strftime('%Y%m%d%H%M%S')) svg_file_path = './output/{}.svg'.format(data_file_name) @@ -91,6 +96,8 @@ dwg = svgwrite.Drawing(svg_file_path, profile='tiny', width=content_width, heigh if obj_type == 1: exit_item.draw(dwg, content_width - exit_item.width(), 0) +elif obj_type == -2 or obj_type == -1: + exit_item.draw(dwg, 0, 0) bg_rect = DoubleStrokeRectComponent(width=content_width, height=content_height - exit_height, main_color=COLOR_GREEN, stroke_color=COLOR_WHITE, stroke_width=4 * SCALE, r=16 * SCALE) bg_rect.draw(dwg, 0, exit_height) diff --git a/resources/left.png b/resources/left.png new file mode 100644 index 0000000..55af886 Binary files /dev/null and b/resources/left.png differ