1701007156
1701007157
足球上共有60个顶点。如果我们能够求得这60个顶点的坐标,则不难用计算机画出足球的平面投影图。
1701007158
1701007159
【问题】如何计算各顶点的坐标?
1701007160
1701007161
【分析】
1701007162
1701007163
假定初始的正二十面体的12个顶点如前面的计算那样放置。将足球上60个顶点从上到下分层编号,上半球面的30个点是:
1701007164
1701007165
v11,v12,v13,v14,v15, v21,v22,v23,v24,v25, v31,v32,v33,v34,v35,v36,v37,v38,v39,v310, v41,v42,v43,v44,v45,v46,v47,v48,v48,v410.
1701007166
1701007167
利用已知数据和足球的旋转可以从上到下求出各点坐标。足球上顶点的坐标如下:
1701007168
1701007169
v11=(0.343,0,0.939) v12=(0.106,0.326,0.939) v13=(-0.278,0.202,0.939) v14=(-0.278,-0202,0.939) v15=(0.106,-0.326,0.939) v21=(0.687,0,0.727) v22=(0.212,0.653, 0.727) v23=(-0.555,0.403, 0.727) v24=(-0.555,-0.403, 0.727) v25=(0.212,-0.653, 0.727) v31=(0.793,-0.326,0.515) v41=(0.965,-0.202, 0.172) v42=(0.965,0.202, 0.172) v32=(0.793,0.326, 0.515) v33=(0.555,0.654,0.515) v34=(-0.065,0.855 ,0.515) v35=(-0.450,0.730,0.515) v36=(-0.833,0.202,0.515) v37=(-0.833,-0.202,0.515) v38=(-0.450,-0.730,0.515) v39=(-0.065,-0.855,0.515) v310=(0.555,-0.654,0.515) v43=(0.490,0.855, 0.172) v44=(0.106,0.980, 0.172) v45=(-0.662,0.730, 0.172) v46=(-0.900,0.404 , 0.172) v47=(-0.900,-0.404, 0.172) v48=(-0.662,-0.730, 0.172) v49=(0.106,-0.980, 0.172) v410=(0.490,-0.855, 0.172)
1701007170
1701007171
(9)足球拓扑图
1701007172
1701007173
在绘制三维足球立体图之前,先来看看足球拓扑图,足球拓扑图可以看做是三维足球的一个正视图,并且将视图中的虚线绘制成实线,从而构成平面的几何拓扑图。
1701007174
1701007175
绘制足球拓扑图,编程如下:
1701007176
1701007177
%绘制足球网络拓扑图
1701007178
1701007179
%绘制足球网络拓扑图 clc,clear,close all %清屏和清除变量 warning off %消除警告 [a,v]=bucky; %调用系统工具箱,计算各顶点坐标 H=sparse(60,60); %稀疏矩阵 gplot(a-H,v,‘r-‘); %足球拓扑图 hold on gplot(H,v,‘bo-‘)
1701007180
1701007181
运行程序输出图形如图5-51所示。
1701007182
1701007183
1701007184
1701007185
1701007186
图5-51 足球网络拓扑图
1701007187
1701007188
(10)足球三维实体
1701007189
1701007190
足球三维实体绘制,参照足球上顶点的坐标及二维足球网络拓扑图,进行三维足球绘制。三维足球绘制,对于了解足球架构需要有一定的基础,采用MATLAB软件,集成了对于足球点坐标的提取功能,60个坐标点极容易获取,然后根据每一个点之间的拓扑关系,架构拓扑连接关系图,编程如下:
1701007191
1701007192
clc,clear,close all %清屏和清除变量 warning off %消除警告 %计算各顶点坐标 [B,football_pos] = bucky(); %绘半透明球体 [x,y,z]=sphere(30); %得到一个半径为30的球体的x,y,z坐标 figure(‘color’,[1,1,1]) %设置背景颜色为白色 surf(x,y,z,‘facecolor’,[1 1 0],‘edgecolor’,‘none’,‘facealpha’,0.7); %3D曲面绘制 axis equal %坐标轴设置 view(3,3) %视图设置 hold on %图像保持句柄 %绘各顶点 plot3(football_pos(
:,1),football_pos(:,2),football_pos(:,3),’*’); %计算棱长 Edge_Vector = football_pos(1,
:)-football_pos(2,:); Edge_Length = Edge_Vector * Edge_Vector’; Error = 0.0005; %门限值 %距离等于棱长的两点显然是棱,将两点连线 for i=1
:length(football_pos)-1 for j=i+1
:min(j+15,length(football_pos)) Vector = football_pos(i,
:)-football_pos(j,:); Length = Vector*Vector’; if abs(Length-Edge_Length)<=Error x = [football_pos(i,1),football_pos(j,1)]; y = [football_pos(i,2),football_pos(j,2)]; z = [football_pos(i,3),football_pos(j,3)]; line(x,y,z) %绘制线条 end end end
1701007193
1701007194
运行程序输出图形如图5-52所示。
1701007195
1701007196
1701007197
1701007198
1701007199
图5-52 三维足球
1701007200
1701007201
采用程序实现的三维足球绘制,足球是一个空间对称的图形,由以上分析可知,足球有着很多特有的性质,使得足球为众人痴迷。通过本小节的学习,大家可以设计一个属于自己的足球。
1701007202
1701007203
1701007204
1701007205
[
上一页 ]
[ :1.701007156e+09 ]
[
下一页 ]