From 791049f9d5a4006fe5efeddb71c0d99b41be63d5 Mon Sep 17 00:00:00 2001 From: Zhang Muyu Date: Wed, 27 Sep 2023 20:51:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A6=E5=87=BA=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/exit.py | 11 +++++++++-- main/main.py | 17 ++++++++++++----- resources/left.png | Bin 0 -> 4268 bytes 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 resources/left.png 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 0000000000000000000000000000000000000000..55af886a5a805629099b6ba75a829fee6a139106 GIT binary patch literal 4268 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 literal 0 HcmV?d00001