1、在Matlab中,构造一简单二维图形的顶点表齐次矩阵,使用齐次矩阵变换方法对分别该图形做以下二维变换:
>> A=[2 3 1;
3.75 3 1;
3.75 3.5 1;
4.75 3.5 1;
4.75 4 1
5.25 4 1
5.25 6 1;
6.25 5.5 1;
5.5 5.5 1;
5.5 4 1;
6 4 1;
6 3.5 1;
7 3.5 1;
7 3 1;
9 3 1;
8 2 1;
7 2 1;
6 2 1;
5 2 1;
3 2 1;
2 3 1;]
A =
2.0000 3.0000 1.0000
3.7500 3.0000 1.0000
3.7500 3.5000 1.0000
4.7500 3.5000 1.0000
4.7500 4.0000 1.0000
5.2500 4.0000 1.0000
5.2500 6.0000 1.0000
6.2500 5.5000 1.0000
5.5000 5.5000 1.0000
5.5000 4.0000 1.0000
6.0000 4.0000 1.0000
6.0000 3.5000 1.0000
7.0000 3.5000 1.0000
7.0000 3.0000 1.0000
9.0000 3.0000 1.0000
8.0000 2.0000 1.0000
7.0000 2.0000 1.0000
6.0000 2.0000 1.0000
5.0000 2.0000 1.0000
3.0000 2.0000 1.0000
2.0000 3.0000 1.0000
>> x1 = A(:,1);
>> y1 =A(:,2);
>> subplot(2,2,1);
plot(x1,y1,'linewidth',3);
axis([0 10 0 8]);
>>A1 = [0.5 0 0;
0 2 0;
0 0 1;]
A 1=
0.5000 0 0
0 2.0000 0
0 0 1.0000
>>T1 = A*A1;
>> x2 = T1(:,1);
>> y2 = T1(:,2);
>> subplot(2,2,2);
>> plot(x2,y2,'linewidth',3);
>> axis([0 15 0 15]);
>> B=[cosd(45) (-sind(45)) 0;
sind(45) cosd(45) 0;
0 0 1;]
B =
0.7071 -0.7071 0
0.7071 0.7071 0
0 0 1.0000
>> T2 = A*B;
>> x3 = T2(:,1);
>> y3 = T2(:,2);
>> subplot(2,2,3);
>> plot(x3,y3,'linewidth',3);
>> C = [1 0 0;
1/2 1 0;
0 0 1;]
C =
1.0000 0 0
0.5000 1.0000 0
0 0 1.0000
>> T3 = A*C;
>> x4 = T3(:,1);
>> y4 = T3(:,2);
>> subplot(2,2,4);
>> plot(x4,y4,'linewidth',3);