Подтвердить что ты не робот

Как настроить серфинг на один цвет (без градиента) на моем графике Matlab?

Мой набор данных состоит из трех векторов (x, y и z). Я отображаю эти значения в виде точек на трехмерном графике с plot3 (x, y, z), что нормально. Я также хочу показать самолет на том же участке. Чтобы получить данные этого графика, я использую линейную регрессию по x и y, чтобы получить новый z.

Вот как это выглядит:

alt text
(источник: bildr.no)

Я хочу, чтобы прибой был заполнен только одним цветом (скажем, голубым или серым) и установил прозрачность, чтобы сделать его прозрачным. Как я могу это сделать?

4b9b3361

Ответ 1

Самый простой способ создать поверхность с одним цветом и заданным значением прозрачности - установить свойства FaceColor и FaceAlpha для поверхностного объекта:

hSurface = surf(...your arguments to create the surface object...);
set(hSurface,'FaceColor',[1 0 0],'FaceAlpha',0.5);

В этом примере цвет поверхности будет красным, а прозрачность - 0,5. Вы также можете установить свойства края (с помощью "EdgeColor" и "EdgeAlpha" ).

Ответ 2

Мне непонятно, что вы хотите сделать. Когда вы говорите один цвет для прибоя, вы имеете в виду ровно один цвет, или вы имеете в виду, что хотите оттенки серого?

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

x = rand(1,20);
y = rand(1,20);
z = rand(1,20);

[X,Y] = meshgrid(linspace(0,1,10),linspace(0,1,10));
Z = rand(10)*0.1;

clf
plot3(x,y,z,'.');
hold on
h = surf(X,Y,Z)
hold off

%% This will change the color
colormap(copper)
%% This will remove colordata
set(h, 'cdata',zeros(10))
%% This will make transparent
alpha(0.5)

Ответ 3

Завершая ответ от gnovice, может потребоваться дополнительный ингредиент в set(hsurface...) (Matlab R2010b 64):

hSurface = surf(...your arguments to create the surface object...);
set(hSurface, 'FaceColor',[1 0 0], 'FaceAlpha',0.5, 'EdgeAlpha', 0);

чтобы сделать невидимыми ребра "точка-точка" построенной поверхности

Ответ 4

@matlabDoug имеет то, что вам нужно, я думаю. Свойство cdata содержит данные о цвете, которые получают цветовую карту, применяемую к ней. Установка его в массив того же размера, что и ваши поверхностные данные, причем каждый элемент в этом массиве имеет одинаковое значение, сделает вашу поверхность одним цветом. С цветной картой по умолчанию установка всего в cdata на ноль сделает вашу поверхность синей, а установка всего на 1 сделает поверхность красной. Затем вы можете играть с альфой, чтобы сделать ее прозрачной.