How to fill planes in a 3d Plot?

7 visualizaciones (últimos 30 días)
Jan Tiede
Jan Tiede el 9 de En. de 2018
Comentada: Jan Tiede el 13 de En. de 2018
Hi
I have a plot3 with several graphs in it and i want to fill the planes between the graphs and the y axis. I tried fill3 but that doesn't seem to work. Any help would be appreciated!
Cheers
Jan

Respuestas (1)

Matt Sprague
Matt Sprague el 11 de En. de 2018
The fill3 command can be used to create the surface between your line and the y-axis. The fliplr command is used to make sure the surface vertices are in the correct order. Here's a small example for an arbitrary line.
% Original Line
x1 = linspace(0,pi/2,10);
y1 = linspace(0,pi/2,10);
z1 = sin(linspace(0,pi/2,10));
%
% Y-Axis
x2 = zeros(size(x1));
y2 = y1;
z2 = zeros(size(x1));
%
% Surface between lines
xs = [x1 fliplr(x2)];
ys = [y1 fliplr(y2)];
zs = [z1 fliplr(z2)];
%
figure(1)
plot3(x1,y1,z1,x2,y2,z2)
hold on
fill3(xs,ys,zs,'r','FaceAlpha',0.5);
grid on
xlabel('X axis')
ylabel('Y axis')
zlabel('Z axis')
hold off
  1 comentario
Jan Tiede
Jan Tiede el 13 de En. de 2018
Hi Matt,
thanks for your answer. I tried to do it with my code but can't seem to produce the filled planes.
Here is how I thought it should be:
if true
%%Fill planes with colour
% Original Line
h = ones(1,26)
%
x1 = h;
y1 = RSTuvw.vw_avg(1,:);
z1 = ADCP.Range;
%
% Y-Axis
x2 = x1;
y2 = zeros(size(y1));
z2 = zeros(size(z1))
%
% Surface between lines
xs = [x1 fliplr(x2)];
ys = [y1 fliplr(y2)];
zs = [z1 fliplr(z2)];
%
figure(1)
plot3(x1,y1,z1,x2,y2,z2)
hold on
fill3(xs,ys,zs,'r','FaceAlpha',0.5);
grid on
xlabel('X axis')
ylabel('Y axis')
zlabel('Z axis')
hold off end

Iniciar sesión para comentar.

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by