This commit is contained in:
Horldsence
2026-09-13 10:27:09 +08:00
parent b810ec7777
commit 82311a47cc
52 changed files with 2563 additions and 1278 deletions
+34
View File
@@ -0,0 +1,34 @@
function fig_steps_state_machine()
%FIG_STEPS_STATE_MACHINE 会话状态机:IDLE → 倒计时 → OPEN → CLOSED。
% 只画状态框与迁移箭头,图内不放任何说明性文字。
S = fig_style();
D = load_data(S, 'steps_state_machine');
H = geom_helpers();
fig = figure('Color', 'w', 'Visible', 'off', 'Position', [100 100 900 240]);
ax = axes(fig, 'Position', [0.02 0.10 0.96 0.80], ...
'XLim', [0 100], 'YLim', [0 100], 'Visible', 'off');
hold(ax, 'on');
n = numel(D.labels);
w = 21;
gap = 4.0;
x0 = (100 - (n * w + (n - 1) * gap)) / 2;
y0 = 25;
h = 50;
for i = 1:n
x = x0 + (i - 1) * (w + gap);
color = pick_color(S, D.edges{i});
rectangle(ax, 'Position', [x, y0, w, h], 'FaceColor', 'w', ...
'EdgeColor', color, 'LineWidth', 1.2);
text(ax, x + w / 2, y0 + h / 2, D.labels{i}, ...
'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle', ...
'Interpreter', 'none');
if i < n
H.arrow(ax, [x + w + 0.5, y0 + h / 2], ...
[x + w + gap - 0.5, y0 + h / 2], color);
end
end
hold(ax, 'off');
fig_save(fig, S, 'steps-state-machine.png');
end