Matlab画足球
科普:足球表面是由12个正五边形和20个正六边形构成,每个正五边形相邻的是5个正六边形,共有60个顶点,90条棱,这些数据可以根据欧拉定理计算得出,不是这里要说明的重点。
思路:先计算出60个顶点的三维坐标,然后调用matlab的绘图函数画图。
至于顶点坐标的计算属于数学问题,通过空间对称和旋转,可以计算得出。不是这里要说明的重点,也可以参考链接文档《空间多面体》说明的方法计算:这里不再赘述。
在matlab中有一个得到足球顶点坐标的函数:bucky(),参看matlab帮助关于该函数的说明如下:
bucky Connectivity graph of
the Buckminster Fuller geodesic dome.
B = bucky is the 60-by-60 sparse adjacency matrix of
the
connectivity graph of the geodesic dome, the soccer
ball,
and the carbon-60 molecule.
[B,V] = bucky also returns xyz coordinates of the
vertices.
有了顶点坐标,接下来就是绘制足球面的问题了,由于每条棱长都相等,因此可以先计算出一条棱长,然后把所有距离等于棱长的两点连线,就画出了每个面的正多边形。这步可能还有其他更简单的方法,留待后续有时间再思考。
还有最后一步,就是给五边形和六边形涂色,五边形是黑色&#