figure(1);
%绘简立方的倒格子简立方的第一布里渊区(定义倒格子常数为4)
Vm1=[2 2 2;2 -2 2;-2 -2 2;-2 2 2;2 2 -2;2 -2 -2;-2 -2 -2;-2 2 -2];
Fm1=[1 2 3 4;5 6 7 8;3 4 8 7;2 1 5 6;1 4 8 5;2 3 7 6];
Np=[0 0 2; 0 0 -2;0 2 0;0 -2 0;-2 0 0;2 0 0]; %六个最邻近点(the Nearest Point)的坐标
Vm2=[1 1 1;1 -1 1;-1 -1 1;-1 1 1;1 1 -1;1 -1 -1;-1 -1 -1;-1 1 -1];
Fm2=[1 2 3 4;5 6 7 8;3 4 8 7;2 1 5 6;1 4 8 5;2 3 7 6];
x=Np(:,1);
y=Np(:,2);
z=Np(:,3);
plot3(x,y,z,'or','MarkerFaceColor','r','MarkerSize',10); %绘制六个最邻近点
hold on;
patch('Vertices',Vm1,'Faces',Fm1,'Linestyle','-','FaceVertexCData',rand(size(Fm1,1),1),'FaceColor','none','LineWidth',2); %绘制边长为4的无色正方体
hold on;
patch('Vertices',Vm2,'Faces',Fm2,'Linestyle','-','FaceVertexCData',rand(size(Fm2,1),1),'FaceColor','flat'); %绘制第一布里渊区
view(3);
axis vis3d; %三维旋转时保持高、宽比不变
axis off; %取消轴背景
title('简立方的第一布里渊区');
legend('最邻近点',4);
figure(2);
%绘简立方的倒格子简立方的第二布里渊区(定义倒格子常数为4)
Vm1=[2 2 2;2 -2 2;-2 -2 2;-2 2 2;2 2 -2;2 -2 -2;-2 -2 -2;-2 2 -2];
Fm1=[1 2 3 4;5 6 7 8;3 4 8 7;2 1 5 6;1 4 8 5;2 3 7 6];
Np=[0 0 2; 0 0 -2;0 2 0;0 -2 0;-2 0 0;2 0 0]; %六个最邻近点(the Nearest Point)的坐标
Sp=[0 2 2;0 -2 2;-2 0 2;2 0 2;-2 2 0;-2 -2 0;2 2 0;2 -2 0;0 2 -2;-2 0 -2;0 -2 -2;2 0 -2]; %十二个次邻近的点(the Second Nearest Point)的坐标
Vm2=[1 1 1;1 -1 1;-1 -1 1;-1 1 1;1 1 -1;1 -1 -1;-1 -1 -1;-1 1 -1];
Fm2=[1 2 3 4;5 6 7 8;3 4 8 7;2 1 5 6;1 4 8 5;2 3 7 6];
Vm3=[0 0 2;1 1 1;1 -1 1;-1 -1 1;-1 1 1;2 0 0;0 -2 0;-2 0 0;0 2 0;1 1 -1;1 -1 -1;-1 -1 -1;-1 1 -1;0 0 -2]; %正十二面体的十四个顶点
Fm3=[1 2 6 3;1 3 7 4;1 4 8 5;1 5 9 2;6 10 14 11;7 11 14 12; 8 12 14 13;9 13 14 10;2 9 10 6;3 6 11 7;4 7 12 8;5 8 13 9];
x=Np(:,1);
y=Np(:,2);
z=Np(:,3);
plot3(x,y,z,'or','MarkerFaceColor','r','MarkerSize',10); %绘制六个最邻近点(用红点圆圈表示)
hold on;
x2=Sp(:,1);
y2=Sp(:,2);
z2=Sp(:,3);
%plot3(x2,y2,z2,'ob','MarkerFaceColor','b','MarkerSize',10); %绘制十二个次邻近的点(用蓝点方块表示)
hold on;
patch('Vertices',Vm1,'Faces',Fm1,'Linestyle','-','FaceVertexCData',rand(size(Fm1,1),1),'FaceColor','none','LineWidth',2);
hold on;
patch('Vertices',Vm2,'Faces',Fm2,'Linestyle','-','FaceVertexCData',rand(size(Fm2,1),1),'FaceColor','flat'); %绘制第一布里渊区
patch('Vertices',Vm3,'Faces',Fm3,'Linestyle','-','FaceVertexCData',rand(size(Fm3,1),1),'FaceColor','none','LineWidth',2); %绘菱形十二面体框架
view(3);
axis vis3d;
axis off;
title('简立方的第二布里渊区');
legend('最邻近点','次邻近点',4);
figure(3);
%绘体心立方的倒格子面心立方的第一布里渊区:菱形二面体(定义倒格子常数为4)
Vm1=[2 2 2;2 -2 2;-2 -2 2;-2 2 2;2 2 -2;2 -2 -2;-2 -2 -2;-2 2 -2];
Fm1=[1 2 3 4;5 6 7 8;3 4 8 7;2 1 5 6;1 4 8 5;2 3 7 6];
Np=[0 2 2;0 -2 2;-2 0 2;2 0 2;-2 2 0;-2 -2 0;2 2 0;2 -2 0;0 2 -2;-2 0 -2;0 -2 -2;2 0 -2]; %十二个最邻近的点的坐标
Vm2=[0 0 2;1 1 1;1 -1 1;-1 -1 1;-1 1 1;2 0 0;0 -2 0;-2 0 0;0 2 0;1 1 -1;1 -1 -1;-1 -1 -1;-1 1 -1;0 0 -2]; %正十二面体的十四个顶点坐标
Fm2=[1 2 6 3;1 3 7 4;1 4 8 5;1 5 9 2;6 10 14 11;7 11 14 12; 8 12 14 13;9 13 14 10;2 9 10 6;3 6 11 7;4 7 12 8;5 8 13 9];
x=Np(:,1);
y=Np(:,2);
z=Np(:,3);
plot3(x,y,z,'or','MarkerFaceColor','r','MarkerSize',10);
hold on;
patch('Vertices',Vm1,'Faces',Fm1,'Linestyle','-','FaceVertexCData',rand(size(Fm1,1),1),'FaceColor','none','LineWidth',2);
hold on;
patch('Vertices',Vm2,'Faces',Fm2,'Linestyle','-','FaceVertexCData',rand(size(Fm2,1),1),'FaceColor','flat');
view(3);
axis vis3d;
axis off;
title('体心立方的第一布里渊区');
legend('最邻近点',4);
figure(4);
%绘面心立方的倒格子体心立方的第一布里渊区:截角八面体(定义倒格子常数为4)
Vm1=[2 2 2;2 -2 2;-2 -2 2;-2 2 2;2 2 -2;2 -2 -2;-2 -2 -2;-2 2 -2]; %立方体的八个顶点
Fm1=[1 2 3 4;5 6 7 8;3 4 8 7;2 1 5 6;1 4 8 5;2 3 7 6];
Np=[2 2 2;2 -2 2;-2 -2 2;-2 2 2;2 2 -2;2 -2 -2;-2 -2 -2;-2 2 -2]; %八个最邻近的点
Vm2=[1 0 2;0 -1 2;-1 0 2;0 1 2;1 0 -2;0 -1 -2;-1 0 -2;0 1 -2;1 2 0;0 2 1;-1 2 0;0 2 -1;1 -2 0;0 -2 1;-1 -2 0;0 -2 -1;-2 -1 0;-2 0 1;-2 1 0;-2 0 -1;2 -1 0;2 0 1;2 1 0;2 0 -1]; %截角八面体的二十四个点坐标
Fm2=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;17 18 19 20;21 22 23 24];
Fm3=[2 1 22 21 13 14;3 2 14 15 17 18;4 3 18 19 11 10;1 4 10 9 23 22;6 5 24 21 13 16;7 6 16 15 17 20;8 7 20 19 11 12;5 8 12 9 23 24];
x=Np(:,1);
y=Np(:,2);
z=Np(:,3);
plot3(x,y,z,'or','MarkerFaceColor','r','MarkerSize',10); %绘出最邻近的八个点
hold on;
patch('Vertices',Vm1,'Faces',Fm1,'Linestyle','-','FaceVertexCData',rand(size(Fm1,1),1),'FaceColor','none','LineWidth',2);
hold on;
patch('Vertices',Vm2,'Faces',Fm2,'Linestyle','-','FaceVertexCData',rand(size(Fm2,1),1),'FaceColor','flat'); %截角八面体的四个正方形
patch('Vertices',Vm2,'Faces',Fm3,'Linestyle','-','FaceVertexCData',rand(size(Fm3,1),1),'FaceColor','flat'); %绘截角八面体的八个正六边形
view(3);
axis vis3d;
axis off;
title('面心立方的第一布里渊区');
legend('最邻近点',4);
评论0