Sunteți pe pagina 1din 20

Universitatea Lucian Blaga din Sibiu

Facultatea de Stiinte
Informatica




Proiect
Geometrie Computationala






Student:Morariu Dragos-Ilie
Informatica I Semigrupa II


2014
p=[1 3 5 9;-3 6 8 3];
for k=1:4
plot(p(1,k),p(2,k),'gs'); hold on
end
A=(1/27)*[27 0 0 0; 8 12 6 1; 1 6 12 8; 0 0 0
27];
b = inv(A)*p';
b=b';
plot(b(1,:), b(2,:), 'bx-');
t=0:.001:1;
B0=(1-t).^3;
B1=3.*(1-t).^2.*t;
B2=3.*(1-t).*t.^2;
B3=t.^3;
B=[B0;B1;B2;B3];
x=b*B;
comet(x(1,:),x(2,:));














































Laborator 2

Extragerea submatricelor prin indici

Elementele individuale ale unei matrice se apeleaz cu numerele acesteia,
urmat de doi indici, cuprini ntre paranteze rotunde i separai de virgul.
Primul indice semnific linia, iar al doilea coloana n care se gsete
elementul apelat.

Fie A =
[



S se scrie instruciunile care permit selectarea din matricea A a: liniei a 2-
a;coloanei a 3-a;submatricei format din liniile 1-2 i coloanele 4-6;submatricei
format din liniile 1,4 i coloanele 2,4,5;
Datele de intrare :matricea A
Datele de iesire: matricea B,D,C respectiv E.

A=[1 2 3 4 5 6; 2 3 4 5 6 1; 3 4 5 6 1 2; 4 5 6 1 2 3; 5 6 1 2 3 4; 6 1 2 3 4 5]
B=A(2,:)
C=A(:,3)
D=A(1:2,4:6)
1 2 3 4 5 6 7
0
1
2
3
4
5
6
7
E=A( [1,4],[2,4:5] )



Se obin rezultatele:
B=[2 3 4 5 6 1] D=[


] C=
[

E=[


]




Laborator 3

Reprezentri grafice speciale X-Y


Reprezentarea grafic cu bare se face cu funcia bar, se apeleaz cu una din sintaxele:
bar(y) - traseaz un grafic de bare cu elementele vectorului y, adic y=yi
bar(x,y) - traseaz un grafic de bare cu elementele vectorului y la locaiile specificate de vectorul x,
adic y=y(x).Valorile lui x trebuie s fie egal deprtate i cresctoare.


S se reprezinte graficul cu bare al datelor coninute n vectorul y=[1 3 7 6 5 2 3].

Datele de intrare : Vectorul y Datele de iesire: Graficul



y=[1 3 7 6 5 2 3];
bar(y);









Reprezentarea grafic n trepte se face cu funcia stairs, care se apeleaz cu una din
sintaxele:
- stairs(y) -traseaz graficul n trepte al elementelor vectorului y
- stairs(x,y) -traseaz graficul n trepte al elementelor vectorului y la locaiile specificate n x.
Valorile lui x trebuie s fie egal deprtate i n ordine cresctoare.
S se reprezinte graficul n trepte al funciei y=sin(x).
Date de intrare : Vectorul X Datele de iesire: Graficul

x:0:2:6;
y=sin(x)
stairs(x,y);



Reprezentarea grafic a datelor cu bare
de eroare ataeaz fiecrei perechi (x,y)
eroarea precizat ntr-un vector cu
aceleai dimensiuni; se apeleaz cu
sintaxa: errorbar(x,y,e).
S se reprezinte un grafic cu bare de erori pentru: y=sin(x).

Datele de intrare: y=sin(x)
Datele de iesire: Graficul

:

x=0:2:6;
y=sin(x);
e=rand(size(x))/6;
errorbar(x,y,e);



Reprezentarea grafic a histogramelor se face cu funcia hist, se apeleaz cu una dintre
sintaxele:
hist(y) - traseaz histograma cu 10 segmente a datelor vectorului y;
hist(y,nb) - traseaz histograma cu nb segmente a datelor vectorului y;
hist(y,x) - traseaz histograma datelor vectorului y la abscisele specificate n x;

0 1 2 3 4 5 6
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-1 0 1 2 3 4 5 6 7
-1.5
-1
-0.5
0
0.5
1
1.5
2
4
6
30
210
60
240
90
270
120
300
150
330
180 0
.
Datele de intrare: Vectorul cu elemente
Datele de iesire: Grafic

x=-3:3:3;
y=rand(1000,1);
hist(y,x);











Reprezentarea grafica a vectorilor se face cu funcia compass care reprezint grafic
vectori cu originea n originea sistemului de coordonate; se apeleaz cu sintaxele: compass(z)
compass(x,y) unde: z este numrul complex x+iy, iar x i y sunt numere reale proiecia
vectorului pe abscis i ordonat.

Datele de intrare: Vectorii z1,z2,z3
Datele de iesire: Graficul



z=[2-5*i,-2+I,3+2*i];
compass(z);
grid on;






Reprezentarea grafica in coordonate polare realizeaz graficul n coordonate polare al
unghiului teta (t, n radiani) fa de raza.
-4 -3 -2 -1 0 1 2 3 4
0
200
400
600
800
1000
1200
1400
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02
-1
-0.5
0
0.5
1
1.5
0.1
0.2
0.3
0.4
0.5
30
210
60
240
90
270
120
300
150
330
180 0

Datele de intrare: unghiul teta
Datele de iesire: Graficul


t=0:0.01:2*pi;
polar(t,abs(sin(2*t).*cos(2*t)));
grid on;









Reprezentarea grafica utilizand functia stem care deseneaz un marker pentru fiecare x prin
valoarea y care este conectat la o referin comun printr-o linie vertical.

Date de intrare: Vectorul x
Date de iesire: Graficul

x=0:0.1:4;
y=sin(x.^2).*exp(-x);
stem(x,y);








Reprezentarea grafic n coordonate liniare

Date de intrare: Vectorul t
Date de iesire : Graficul

0 0.5 1 1.5 2 2.5 3 3.5 4
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35

t=linspace(0,2*pi,100);
x=cos(t);
y=sin(t);
plot(x,y);
axis square
pause
close

t=linspace(0,1,100);
x=1-2.*t+t.^2;
y=2-2.*(t.^2);
plot(x,y);
axis square
pause
close
t=0:0.001:0.02;
f=sin((2*pi).*(50*t));
g=f+.2;
plot(t,f,-g,t,g,*r);





Curbe in reprezentare parametrica
a) Cercul de raz 1 cu centrul n O(0,0)


Se obine graficul
din figura:









b) Curba x(t)=6t-9t
2
+4t
3
; y(t)=2-2t
2
;




Se obine graficul din
figura:






c) Curba x(t)=(1-t)
2
+ 4(1-t)*t-t
2
; y(t)=-
2(1-t)
2
+t
2
; t[0,1];

-1 -0.5 0 0.5 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
-1 -0.5 0 0.5 1 1.5
-2
-1.5
-1
-0.5
0
0.5
1



Se obine graficul din figura:















Laborator 4 & 5


1. Fie T = [0 1 1 0, 0 1 -1 0] o matrice dat.
a) Trasai un triunghi a crui vrfuri sunt date de matricea T.
b) Mrii triunghiul cu 2, rotii-l cu 1200 (2*pi/3) invers acelor de ceasornic i apoi reprezentai
triunghiul.
c) Translatai triunghiul cu vectorul [1, 2] i apoi reprezentai triunghiul rezultat.
d) Reflectai triunghiul dup axa OX reprezentai triunghiul rezultat.

a)
tmat=[0 1 1 0;0 1 -1 0];
subplot(221),plot(tmat(1,:),tmat(2,:),'-')
subplot(221),axis([-5 5 -5 5])
text(0,0,'+')
title('triunghiul original')
axis square





b)
tmat=2*tmat;
theta=2*pi/3;
rmat=[cos(theta) -sin(theta);sin(theta) cos(theta)];

t=linspace(0,1,100);
x=(1-t).^2+4.*((1-t).*t)-t.^2;
y=(-2).*((1-t).^2)+t.^2;
plot(x,y);
axis square
pause
close
tmat=rmat*tmat;
subplot(222),plot(tmat(1,:),tmat(2,:),'-')
subplot(222),axis([-5 5 -5 5])
text(0,0,'+')
title('dilatare si rotatie')
axis square



c)
for i=1:4;
tmat(:,i)=tmat(:,i)+[1;2];
end;
subplot(223),plot(tmat(1,:),tmat(2,:),'-')
subplot(223),axis([-5 5 -5 5])
text(0,0,'+')
title('translatie')
axis square


d)
amat=[1 0;0 -1];
tmat=amat*tmat;
subplot(224),plot(tmat(1,:),tmat(2,:),'-')
subplot(224),axis([-5 5 -5 5])
text(0,0,'+')
title('reflectie')
axis square










Date de intrare : matricea T
Date de iesire: Graficele


2.Rotirea unui ptrat cu coordonatelor punctelor {(1,0),(0,1),(-1,1),(0,-1)} cu un unghi
theta=/4


u=[1 0 -1 0;0 1 0 -1];
theta=pi/4
fill(u(1,:),u(2,:),'r')
hold on
axis([-2 2 -2 2])
r=[cos(theta) -sin(theta);sin(theta) cos(theta)];
v=r*u;
fill(v(1,:),v(2,:),'b')
axis equal tight
grid on


Date de intrare : Matricea u si theta
Date de iesire: Graficul


3. Reprezentai un triunghi cu
punctele: {(5,0),(6,2),(4,1)}. Rotii
triunghiul cu /2, i 3/2.

u=[5 6 4;0 2 1];
fill(u(1,:),u(2,:),'r')
hold on
r=@(theta)[cos(theta) -sin(theta);sin(theta) cos(theta)];
v=r(pi/2)*u;
fill(v(1,:),v(2,:),'b')
v=r(pi)*u;
fill(v(1,:),v(2,:),'g')
v=r(3*pi/2)*u;
fill(v(1,:),v(2,:),'y')

Date de intrare: Matricea u si r
Date de iesire: v

4. Fie R o matrice care se rotete invers acelor de
ceas cu un unghi de /8 i fie R1=0.9*R. Matricea R1
rotete i micoreaz simultan un obiect. Realizai
codul pentru a roti i micora ptratul anterior pentru 50 de iteraii.

u=[1 0 -1 0;0 1 0 -1];
figure
fill(u(1,:),u(2,:),'r')
hold on
r=@(t)[cos(t) -sin(t);sin(t) cos(t)];
r1=0.9*r(pi/8);
for k=1:50,
v=r1*u;
fill(v(1,:),v(2,:),'b')
u=v;
end;
axis
grid on










5. Aplicai R1 ptratului original, dar de data acasta dup fiecare rotaie translatai ptratul cu
o unitate pentru x i cu dou uniti pentru y.

u=[1 0 -1 0;0 1 0 -1]
figure
hold on
r=@(t)[cos(t) -sin(t);sin(t) cos(t)]
r1=0.9*r(pi/8)
for k=1:50,
v=r1*u
fill(v(1,:),v(2,:),'b')
for i=1:4,
v(:,i)=v(:,i)+[1;2]
end;
u=v
end;




Laborator 6

1.S se calculeze valorile funciei radical pentru mai multe date de intrare i s se afieze grafic
rezultatele.
Date de intrare: x
Date de ieire: Graficul

x=[0 1 4 9 16 25 36 49 64 81]
y=sqrt(x)
plot (x,y)


2.S se reprezinte grafic funcia ptratic y=x
2
+3x+2, [-
5,5]

Date de intrare: x, y
Date de ieire:Graficul

x=-5:1:5
y=x.^2+3*x+2
subplot (121)
plot(x,y,'*y')
x=-5:0.1:5
y=x.^2+3*x+2
subplot(122)
plot (x,y,'*r')

3.S se reprezinte n acelai grafic funciile sin
i cos pe intervalul (0,4).

Date de intrare: t
Date de ieire: Graficul



t=0:0.1:4*pi
hold on
plot(sin(t))
plot(cos(t))



4.S se reprezinte curba dat: x=1+|t| y=1-t
2
.

Date de intrare: t, x, y
Date de ieire: Graficul

t=-1:0.1:1
x=1+abs(t)
y=1-t.^2
subplot(131);plot(t,x)
subplot(132);plot(t,y)



5.S se reprezinte grafic n coordonate polare
curba dat prin ecuaia r=2sin(2), =(0,).

Date de intrare: r, theta
Date de ieire: Graficul

theta=0:0.1:pi
r=2*sin(2*theta)
polar(theta,r)




6.S se reprezinte grafic funcia dat prin
ecuaia: (x
2
+y
2
)
2
=x
2
-y
2


Date de intrare: x,y
Date de ieire: Graficul

ezplot('(x^2+y^2)^2=x^2-y^2',[-2 2])

7.x(t)=6t-9t
2
+4t
3
y(t)=4t
4
-3t
2


a)Reprezentai grafic curba
b)Reprezentai grafic curba derivat.

Date de intrare: x, y, t
Date de ieire: Graficul

t=0:0.01:1
x=6*t-9*t.^2+4*t.^3
y=4*t.^3-3*t.^2
subplot(121);plot(x,y)
xd=6-18*t+12*t.^2
yd=12*t.^2-6*t
subplot(122);plot(xd,yd)

8.S se reprezinte grafic curba: x=(1-t
2
)/(1+t
2
)
y=(2t)/(1+t
2
) t=(-1,1).

Date de intrare: t, x, y
Date de ieire:Graficul

t=-1:0.01:1
x=(1-t.^2)./(1+t.^2)
y=(2*t)./(1+t.^2)
plot(x,y)









Laborator 7





Polinoame Bernstein de grad 2

(t)=(1-t)
2

(t)=2(1-t)t

(t)=t
2


Polinoame Bernstein de grad 3

(t)=(1-t)
3

(t)=3(1-t)
2
t

(t)=3(1-t)t
2

(t)=t
3


Polinoame Bernstein de grad 4

(t)=(1-t)
4

(t)=4(1-t)
3
t

(t)=6(1-t)
2
t
2

(t)=4(1-t)t
3

(t)=t
4


Polinoame Bernstein de grad 5

(t)=(1-t)
5

(t)=5(1-t)
4
t

(t)=10(1-t)
3
t
2

(t)=10(1-t)
2
t
3

(t)=5(1-t)t
4

(t)=t
5





Reprezentarea Curbei Berzier de grad 2
t=0:0.001:1;
B0=(1-t).^2
B1=2*(1-t).*t
B2=t.^2
B=[B0;B1;B2]
b=ginput(3)
b=b'
f=b*B;
hold on
title('curba bezier grad 2');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off


Reprezentarea Curbei Berzier de grad 3
t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=ginput(4)
b=b'
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off


Reprezentarea Curbei Berzier de grad 4
t=0:0.001:1;
B0=(1-t).^4
B1=4*(1-t).^3.*t
B2=6*(1-t).^2.*t.^2
B3=4*(1-t).*t.^3
B4=t.^4
B=[B0;B1;B2;B3;B4]
b=ginput(5)
b=b'
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off




Reprezentarea Curbei Berzier de grad 5
t=0:0.001:1;
B0=(1-t).^5
B1=5*(1-t).^4.*t
B2=10*(1-t).^3.*t.^2
B3=10*(1-t).^2.*t.^3
B4=5*(1-t).*t.^4
B5=t.^5
B=[B0;B1;B2;B3;B4;B5]
b=ginput(6)
b=b'
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))



















Laborator 8


Curba Berzier fr puncte de inflexiune
t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=[0 1 4 5;0 1 1 0]
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off



Curba Berzier cu punct de inflexiune
t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=[0 1 2 3;0 1 -3 0]
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off






Curba Berzier cu punct unghiular
t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=[-1 1 -1 1;0 1 1 0]
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off


Curba Berzier cu bucl
t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=[0 1 -1 1;0 1 1 0]
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off



Curba Berzier nchis
t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=[0 2 4 0;0 1 1 0]
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off




Curba Berzier sub forma unei drepte

t=0:0.001:1;
B0=(1-t).^3
B1=3*(1-t).^2.*t
B2=3*(1-t).*t.^2
B3=t.^3
B=[B0;B1;B2;B3]
b=[0 2 4 6;0 2 4 6]
f=b*B;
hold on
title('curba bezier grad 3');
plot(b(1,:),b(2,:),'b-')
plot(f(1,:),f(2,:),'r')
comet(f(1,:),f(2,:))
hold off

S-ar putea să vă placă și