feat: 左出口

This commit is contained in:
Zhang Muyu
2023-09-27 20:51:06 +08:00
parent 9714e7a928
commit 791049f9d5
3 changed files with 21 additions and 7 deletions

View File

@@ -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))

View File

@@ -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)

BIN
resources/left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB