feat: 左出口
This commit is contained in:
@@ -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))
|
||||
|
||||
|
||||
17
main/main.py
17
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)
|
||||
|
||||
BIN
resources/left.png
Normal file
BIN
resources/left.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Reference in New Issue
Block a user