Translation, rotation, affinité du plan
Attention, votre navigateur ne supporte pas le javascript ou celui-ci a été désactivé. Certaines fonctionnalités dynamiques de ce module sont restreintes.
Translation d'un point
Le programme suivant permet d'effectuer translation de vecteur
1
// Rotation d'un angle theta=30° autour du point B(2,1)
2
b=[2;1;1];
3
Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1];
4
m=[4;5;1];
5
scf(1);
6
clf;
7
plot(m(1,1),m(2,1),'r+')
8
plot(b(1,1),b(2,1),'ro')
9
a=get("current_axes");
10
a.data_bounds=[0,0;10,10];
11
mr=Td*m;
12
plot(mr(1,1),mr(2,1),'g+')
// Rotation d'un angle theta=30° autour du point B(2,1) b=[2;1;1]; Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1]; m=[4;5;1]; scf(1); clf; plot(m(1,1),m(2,1),'r+') plot(b(1,1),b(2,1),'ro') a=get("current_axes"); a.data_bounds=[0,0;10,10]; mr=Td*m; plot(mr(1,1),mr(2,1),'g+')
Similitude
Le programme suivant permet d'effectuer une similitude d'un facteur -0.5 autour du point B(2,1)
1
// Similitude d'un facteur -0.5 autour du point B(2,1)
2
s= -0.5;
3
S=[s 0 0;0 s 0 ;0 0 1];
4
b=[2;1;1];
5
Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1];
6
Ti=[1 0 -b(1,1);0 1 -b(2,1); 0 0 1];
7
// M (4,5) point qui va tourner
8
m=[4;5;1];
9
scf(1);
10
clf;
11
plot(m(1,1),m(2,1),'r+')
12
plot(b(1,1),b(2,1),'ro')
13
a=get("current_axes");
14
a.data_bounds=[0,0;10,10];
15
mr=Td*S*Ti*m;
16
plot(mr(1,1),mr(2,1),'g+')
// Similitude d'un facteur -0.5 autour du point B(2,1) s= -0.5; S=[s 0 0;0 s 0 ;0 0 1]; b=[2;1;1]; Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1]; Ti=[1 0 -b(1,1);0 1 -b(2,1); 0 0 1]; // M (4,5) point qui va tourner m=[4;5;1]; scf(1); clf; plot(m(1,1),m(2,1),'r+') plot(b(1,1),b(2,1),'ro') a=get("current_axes"); a.data_bounds=[0,0;10,10]; mr=Td*S*Ti*m; plot(mr(1,1),mr(2,1),'g+')
Rotation dans le plan autour d'un point
Le programme suivant permet d'effectuer une rotation de 30° autour du point B(2,1)
1
// Rotation d'un angle theta=30° autour du point B(2,1)
2
theta = 30/180*%pi;
3
R=[cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0 ;0 0 1];
4
b=[2;1;1];
5
Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1];
6
Ti=[1 0 -b(1,1);0 1 -b(2,1); 0 0 1];
7
// M (4,5) point qui va tourner
8
m=[4;5;1];
9
scf(1);
10
clf;
11
plot(m(1,1),m(2,1),'r+')
12
plot(b(1,1),b(2,1),'ro')
13
a=get("current_axes");
14
a.data_bounds=[0,0;10,10];
15
mr=Td*R*Ti*m;
16
plot(mr(1,1),mr(2,1),'g+')
// Rotation d'un angle theta=30° autour du point B(2,1) theta = 30/180*%pi; R=[cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0 ;0 0 1]; b=[2;1;1]; Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1]; Ti=[1 0 -b(1,1);0 1 -b(2,1); 0 0 1]; // M (4,5) point qui va tourner m=[4;5;1]; scf(1); clf; plot(m(1,1),m(2,1),'r+') plot(b(1,1),b(2,1),'ro') a=get("current_axes"); a.data_bounds=[0,0;10,10]; mr=Td*R*Ti*m; plot(mr(1,1),mr(2,1),'g+')
Affinité
Le programme suivant permet d'effectuer une affinité de facteur d'échelle (1.5,1.25) autour du point B(2,1)
1
// Affinité de facteur(1.5,1.25) autour du point B(2,1)
2
A=[1.5 0 0;0 1.25 0 ;0 0 1];
3
b=[2;1;1];
4
Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1];
5
Ti=[1 0 -b(1,1);0 1 -b(2,1); 0 0 1];
6
// M (4,5) point qui va tourner
7
m=[4;5;1];
8
scf(1);
9
clf;
10
plot(m(1,1),m(2,1),'r+')
11
plot(b(1,1),b(2,1),'ro')
12
a=get("current_axes");
13
a.data_bounds=[0,0;10,10];
14
mr=Td*A*Ti*m;
15
plot(mr(1,1),mr(2,1),'g+')
// Affinité de facteur(1.5,1.25) autour du point B(2,1) A=[1.5 0 0;0 1.25 0 ;0 0 1]; b=[2;1;1]; Td=[1 0 b(1,1);0 1 b(2,1); 0 0 1]; Ti=[1 0 -b(1,1);0 1 -b(2,1); 0 0 1]; // M (4,5) point qui va tourner m=[4;5;1]; scf(1); clf; plot(m(1,1),m(2,1),'r+') plot(b(1,1),b(2,1),'ro') a=get("current_axes"); a.data_bounds=[0,0;10,10]; mr=Td*A*Ti*m; plot(mr(1,1),mr(2,1),'g+')