【问题标题】:Drawing platonic solids绘制柏拉图立体
【发布时间】:2012-02-13 09:30:30
【问题描述】:

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

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

【问题讨论】:

标签: 3d geometry polygon coordinate


【解决方案1】:

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

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

无论如何,当使用单个循环时,您会得到一条曲线(曲线的折线近似)。当同时增加yaw和pitch时,你会得到一种球形螺旋,取决于步长和范围的比例。

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

【讨论】:

    【解决方案2】:

    听起来像斐波那契球或吸引/排斥方法是您正在寻找的。这个话题已经讨论过了:Evenly distributing n points on a sphere

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 2015-12-12
      • 2016-08-06
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多