Vous êtes sur la page 1sur 2

Q2

x=linspace(-pi/2,pi/2,50);
y=linspace(-pi/2,pi/2,50);
[x,y]=meshgrid(x,y);
z=sin(x).^2+sin(y).^2;
surf(x,y,z);
axis equal

Q3
x=linspace(-3,3,50);
y=linspace(-3,3,50);
[x,y]=meshgrid(x,y);
z=(-5./(1+x.^2+y.^2));
surf(x,y,z);
axis equal
Hermite cubic spline
clear
n=50;
u=linspace(0,1,n);
v=linspace(0,1,n);
gridsize=[4 4];
load('controlpoints.mat')
count=1;
for i=1:gridsize(1)
for j=1:gridsize(2)
xcp(i,j)=cp(count,1);
ycp(i,j)=cp(count,2);
zcp(i,j)=cp(count,3);
count=count+1;
end
end
B=[2 -2 1 1;-3 3 -2 -1;0 0 1 0; 1 0 0 0];
x=[u.^3;u.^2;u;u.^0]'*B*xcp*B'*[v.^3;v.^2;v;v.^0];
y=[u.^3;u.^2;u;u.^0]'*B*ycp*B'*[v.^3;v.^2;v;v.^0];
z=[u.^3;u.^2;u;u.^0]'*B*zcp*B'*[v.^3;v.^2;v;v.^0];
surf(x,y,z)
hold on

Bspline
clear
n=50;
u=linspace(0,1,n);
v=linspace(0,1,n);
gridsize=[4 4];
load('controlpoints.mat')
count=1;
for i=1:gridsize(1)
for j=1:gridsize(2)
xcp(i,j)=cp(count,1);
ycp(i,j)=cp(count,2);
zcp(i,j)=cp(count,3);
count=count+1;
end
end
B=[-1 3 -3 1;3 -6 0 4;-3 3 3 1; 1 0 0 0];
x=(1/36)*[u.^3;u.^2;u;u.^0]'*B'*xcp*B*[v.^3;v.^2;v;v.^0];
y=(1/36)*[u.^3;u.^2;u;u.^0]'*B'*ycp*B*[v.^3;v.^2;v;v.^0];
z=(1/36)*[u.^3;u.^2;u;u.^0]'*B'*zcp*B*[v.^3;v.^2;v;v.^0];
surf(x,y,z)
hold on

Vous aimerez peut-être aussi