123
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user