如何运用matlab画出正二十面体?
求用matlab画正二十面体的代码,由于matlab没有专门的函数!希望各位大侠提供代码,并附较为详细的解释!谢谢...
求用matlab画正二十面体的代码,由于matlab没有专门的函数!希望各位大侠提供代码,并附较为详细的解释!谢谢
展开
1个回答
展开全部
t = 0:2*pi/5:(2*pi-2*pi/5);
vert = [cos(t'),sin(t'),zeros(5,1)];
t = t'+pi/5;
a = 2*sin(pi/5);
vert=[vert;cos(t),sin(t),a*sqrt(3)*ones(5,1)/2];
h = sqrt(0.75*a^2-cos(pi/5)^2);
vert = [0 0 -h;vert;0 0 a*sqrt(3)/2+h];
fac = [1 2 3
1 3 4
1 4 5
1 5 6
1 6 2
2 3 7
2 6 11
2 7 11
3 7 8
3 4 8
4 8 9
4 5 9
5 9 10
5 6 10
6 10 11
7 8 12
8 9 12
9 10 12
10 11 12
7 11 12];
h = patch('faces',fac,'vertices',vert,'FaceColor','r');
view(3); %设置视角
%set(h,'FaceAlpha',0.5); %设置正12面体透明度
light('Posi',[100 100 100]);
lightangle(30,30); %建立光源并设置光源视角
lighting flat; %设置光照模式
material metal; %设置面的反射属性
axis equal; %设置坐标轴显示方式
%xlabel('X'); ylabel('Y'); zlabel('Z'); %为坐标轴加标签
axis off
vert = [cos(t'),sin(t'),zeros(5,1)];
t = t'+pi/5;
a = 2*sin(pi/5);
vert=[vert;cos(t),sin(t),a*sqrt(3)*ones(5,1)/2];
h = sqrt(0.75*a^2-cos(pi/5)^2);
vert = [0 0 -h;vert;0 0 a*sqrt(3)/2+h];
fac = [1 2 3
1 3 4
1 4 5
1 5 6
1 6 2
2 3 7
2 6 11
2 7 11
3 7 8
3 4 8
4 8 9
4 5 9
5 9 10
5 6 10
6 10 11
7 8 12
8 9 12
9 10 12
10 11 12
7 11 12];
h = patch('faces',fac,'vertices',vert,'FaceColor','r');
view(3); %设置视角
%set(h,'FaceAlpha',0.5); %设置正12面体透明度
light('Posi',[100 100 100]);
lightangle(30,30); %建立光源并设置光源视角
lighting flat; %设置光照模式
material metal; %设置面的反射属性
axis equal; %设置坐标轴显示方式
%xlabel('X'); ylabel('Y'); zlabel('Z'); %为坐标轴加标签
axis off
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |