绘制柏拉图固体

时间:2012-02-13 09:30:31

标签: 3d geometry polygon coordinate

假设我们有一些代码来绘制正多边形(计算它的顶点坐标)

for i=1 to n
 angle += 360/n
 x = cos(angle) * radius
 y = sin(angle) * radius
 plot(x,y)
end

这里,基本思想是增加角度并计算“光标”坐标。对于大N,光标会描述一个圆圈。

有没有这样的东西,但对于立方体和四面体或其他正多面体? 想象一下网球内的一个立方体,它的顶点位于网球的线上(每个网球上都有一条波浪线)。该线可以是访问立方体顶点的光标轨迹

我正在考虑一种算法:

for i=1 to ...
 yaw += ...
 pitch += ...
 x = radius * sin(pitch) * cos(yaw)
 y = radius * sin(pitch) * sin(yaw)
 z = radius * cos(pitch)
 plot(x,y,z)
end

2 个答案:

答案 0 :(得分:0)

正如ChrisF所给出的,没有并且不需要有常规柏拉图固体的公式。只需使用给定的笛卡尔坐标。球体上的几何形状比圆形上的几何形状更受限制。

您建议的方法是基于固定半径的球面坐标,因此所有生成的点都将位于球体上。

无论如何,当使用单个循环时,你会得到一条曲线(曲线的折线近似)。当同时增加偏航和俯仰时,您将获得一种球形螺旋,具体取决于步数和范围的比率。

我们更熟悉在偏航(0到180°)和俯仰(0到360°)上单独使用双环,允许你用经络和平行线对球体进行网格划分。

答案 1 :(得分:0)

您正在寻找诸如斐波那契球或吸引/排斥方法之类的声音。在本主题中对此进行了讨论:Evenly distributing n points on a sphere