Я отлаживал большой графический проект и, наконец, уменьшил проблему до следующего MWE. Как-то MATLAB's copyobj
меняет порядок графических объектов, когда он копирует их на новый рисунок.MATLAB copyobj отменяет порядок объектов?
X = [1 2; 4 4];
Y = [2 -4; -4 2];
figure;
hold on;
colors = [1 0 0; 0 1 0];
lines = [];
for idx = 1:size(X, 2)
l = plot(X(:, idx), Y(:, idx), 'Color', colors(idx, :), 'linewidth', 10);
lines = [lines l];
end
hold off;
дает
Как и следовало ожидать, зеленая линия, которая была разработана позже на вершине красной линии. Затем я копирую эти две строки в новую фигуру.
figure;
a = axes;
copyobj(lines, a);
view(a);
дает
Теперь красный над зеленым.
Кто-нибудь знает причину этого? Чтобы получить правильный порядок, можно ли просто изменить порядок объектов?