Невозможно нанести линию на участок прибоя - линия фрагментирована - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь нанести линию на сюжет для серфинга в Matlab, но линия становится фрагментированной в некоторых областях.Я пытаюсь создать линии или квадраты для разделения между различными кусками данных.Я попытался сделать это с помощью аннотации. Там линии не были фрагментированы, но мне было слишком трудно расположить прямоугольник в точных точках.

Если есть решение с использованием линий, где они не фрагментированыили способ создания прямоугольника, в котором вам просто нужно ввести начало X и конец X, это было бы идеально.

mat=rand(4,125);
surf(mat');
meshgrid(-5:0.5:5);
view(2);
hold on
line([2 2],[1 140],'LineWidth',8,'Color',[1 0 0])

1 Ответ

0 голосов
/ 24 октября 2018

Оба графических объекта, поверхность и линия построены на плоскости XY, поэтому вы видите линию, как только ее значение z превышает значение z графика поверхности, и наоборот, если поверхность z выше линии z.

Вы можете построить линию в поднятой плоскости, добавив смещение z, чтобы избежать проблемы:

mat=rand(4,125);
h = surf(mat');              % Save the handle of your surface object
meshgrid(-5:0.5:5);
view(2);
hold on
z_max = max(max(get(h,'ZData')));   % get max z value of surface plot

% Now plot your line in an z_plane above the highest surf point
line([2 2], [1 140], z_max*ones(1,2)+1, 'LineWidth', 8, 'Color', [1 0 0])

Теперьлиния всегда находится сверху поверхности графика

enter image description here

...