正二十面体的构造和黄金比例的关系

Computer Graphics, Animaition, OpenGL, DirectX, OpenCL
回复
头像
vicyang
版主
版主
帖子: 56
注册时间: 2016年07月21日 20:35
联系:

正二十面体的构造和黄金比例的关系

帖子 vicyang »

最开始在OpenGL红皮书看到正二十面体的顶点取值:
#define X .525731112119133606 
#define Z .850650808352039932

static GLfloat vdata[12][3] = {
{-X, 0.0, Z}, {X, 0.0, Z}, {-X, 0.0, -Z}, {X, 0.0, -Z},
{0.0, Z, X}, {0.0, Z, -X}, {0.0, -Z, X}, {0.0, -Z, -X},
{Z, X, 0.0}, {-Z, X, 0.0}, {Z, -X, 0.0}, {-Z, -X, 0.0}
};
至于取值的由来,一笔带过:
The strange numbers X and Z are chosen so that the distance from the origin to any of the vertices of the
icosahedron is 1.0 (#1

可能是因为智商欠费吧,我当时的表情:
图片

后来去翻了wikipedia - https://en.wikipedia.org/wiki/Icosahedron
原来正二十面体的轮廓,是由三个长宽比例一定的相同矩形两两正交,再取其顶点连结而成。而这矩形的边长比即为黄金比。
图片

有此图为参考,#1 的描述似乎不够严谨,比如我从半径为1的圆上面任意取 x, y 作为长和宽,原点到每个顶点的距离也一
样可以是1.0(单位长度):
图片

那么和黄金比例有什么关系呢?下面就证明一下
图片

图片

a 和 b 分别表示从原点到矩形较长的边和较短边的距离,也就是三个矩形的长和宽都为 2*a, 2*b,范围从 -a 到 a 、-b 到 b;
为了方便,限定 a 为 1,b 为变量,观察 b 从 0.0 开始递增时图像的变化。图中仅标记出部分顶点用于描述。

注意诸如 -a, -b, V 、V, b, a 这样的三角形区域有8个,始终为正三角形。而 V, -b, b 这样的三角形有12个,
它们至少为等腰三角形,等边的长度 L 和相邻正三角形的边长一致。
从 V 作 垂线(长为a) 到 z 平面(橙色矩形),从垂点连接到 -b,长度为 sqrt[b? + (a-b)?],
可间接求得 L = sqrt [ b? + (a-b)? + a? ]

要让底边等于两侧边,即令 2*b 等于L: (2b)? = b? + (a-b)? + a? ,化得: a? = ab + b?,

两边 / b :
  • a?/b = a + b
两边 / a :
  • a/b = (a+b)/a
同样:
  • (a-b)/b = b/a
这个等式,即黄金比例的性质。
参考: http://code-by.org/viewtopic.php?f=49&t=204
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 0 访客