Scilab
3D Plots
In this brief article we’re going to describe how to create
3D Plots in Scilab. We can use builtin functions very similar to
Matlab’s,
such as meshgrid, plot3d, surf and others... or we can use a more
native
function such as param3d (as always, you can type ‘help’ on your Scilab
command
window to see a comprehensive list of available functions).
It is necessary to have
three vectors containing x, y and z
values of the coordinates that we want to display. This is the syntax
param3d(x, y, z, [theta, alpha, leg, flag,
ebox])
where
 x, y and z are three
vectors of the same size representing
points of the parametric curve.
 theta and alpha are real
values containing the spherical
coordinates of the observation point (in degrees).
 leg is a string
defining the labels for each axis with @
as a field separator, for example "X@Y@Z".
 flag = [type, box];
type and box have the same meaning as
in plot3d:
type is an integer used for scaling, and box is an integer to
describe features of the frame around the plot.
 ebox specifies
the boundaries of the plot as the vector [xmin,
xMax, ymin, yMax, zmin, zMax]
If we type this code of four lines (one long line can
continue with ellipsis...)
z = 0 : .01 : 8;
param3d(z .* sin(8*z), z .* cos(8*z), z)
scf();
param3d(z .* cos(10*z), z .* sin(10*z), z, 75, 25,...
"Length@Width@Heigth")
we get these two 3D plots in Scilab
At the top of figure
windows you can find the Tool option
and then the 2D/3D Rotation option. This can help you visualize the
plot from
different angles.
Other functions for 3D Plots in Scilab
meshgrid  create
matrices or 3D arrays
surf  3D surface plot
contour  level curves on a 3D surface
mesh  3D mesh plot
fplot3d1  3D gray or color level plot of a surface defined
by a function
plot3d2  plot surface defined by rectangular facets
Examples
// Generate a vector from
pi/2 to pi/2 with 40 points
u =
linspace(%pi/2, %pi/2, 40);
//
Generate a vector from 0 to 2pi with 20 points
v =
linspace(0, 2*%pi, 20);
// Generate a sphere,
default view
x =
cos(u)'*cos(v);
y =
cos(u)'*sin(v);
z =
sin(u)'*ones(v);
plot3d2(x,
y, z);
// the same shape but other
values for theta and alpha
angles
scf();
plot3d2(x, y, z, theta = 60, alpha = 80);
//
Define a vector
t = 7 :
.15 : 7;
//
Define a grid
[x, y] =
meshgrid(t, t);
//
Define your function
z =
cos(x) .* cos(y) .* exp(sqrt(x.^2 + y.^2)/3);
// Plot
default view
surf(z)
From
'Scilab 3D Plot' to Matlab home
From
'Scilab 3D Plot' to Scilab Menu
