How to fill planes in a 3d Plot?

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

Antworten (1)

Matt Sprague
Matt Sprague am 11 Jan. 2018

0 Stimmen

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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Tags

Gefragt:

am 9 Jan. 2018

Kommentiert:

am 13 Jan. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by