clear all
close all
% spiegazione di meshgrid
x=[1 2 3]
y=[11 12 13]
[X,Y]=meshgrid(x,y)

figure
Z=zeros(3,3);
Z1=ones(3,3);
surf(X,Y,Z)
hold on
surf(X,Y,Z1)


% maniera alternativa di definire un vettore da
%  a a b con elementi spaziati di d: vettore=[a:d:b]
s1=[-2:0.1:2];
t1=linspace(-2,2,41);
[s,t]=meshgrid(s1,t1);
x=s;
y=t;
z=s.^2+t.^2;

figure
surf(x,y,z)

hold on 
axis equal

[si,ta]=meshgrid(linspace(-1,1,5),linspace(-1,1,5));

% piano tangente al paraboloide nel pt (1,1,2)
o=ones(size(si));
x1=o+si; 
y1=o+ta;
z1=2*o+2*si+2*ta;

surf(x1,y1,z1)

% retta normale al paraboloide nel pt (1,1,2)
t1=linspace(-1,1,4);
o1=ones(1,length(t1));
x2=o1-2*t1;
y2=o1-2*t1;
z2=2*o1+t1;

plot3(x2,y2,z2);

figure
clear all

% disegna sfera di centro (0,0,0) e raggio R
[theta,phi]=meshgrid(linspace(0,pi,30),linspace(0,2*pi,40));
R=2;
x=R*sin(theta).*cos(phi);
y=R*sin(theta).*sin(phi);
z=R*cos(theta);
surf(x,y,z)
axis equal
hold on

figure
clear all

% disegna spicchio di ellissoide di centro (0,0,0) 
[theta,phi]=meshgrid(linspace(0,pi,30),linspace(pi/2,2*pi,40));
R=2;
x=R*sin(theta).*cos(phi);
y=R*sin(theta).*sin(phi);
z=3*R*cos(theta);
surf(x,y,z)
axis equal
hold on

