2

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

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
4

2 回答 2

0

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

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

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

我们更熟悉在偏航(0 到 180°)和俯仰(0 到 360°)上独立使用双环,允许您将球体与子午线和平行线相啮合。

于 2012-02-16T16:32:52.933 回答
0

听起来像斐波那契球或吸引/排斥方法是您正在寻找的。这已在本主题中进行了讨论:在球面上均匀分布 n 个点

于 2018-08-03T07:45:31.727 回答