2012-02-13 23 views
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 
+0

此页可能有所帮助 - http://www.vb-helper.com/tutorial_platonic_solids.html - 我不认为柏拉图式固体有一个通用公式。 – ChrisF 2012-02-13 09:42:05

回答

0

正如ChrisF给出的,没有,有needn” t是普通柏拉图固体的公式。只需使用给定的笛卡尔坐标。球体上的几何比圈上的要多得多。

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

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

我们更熟悉在偏航(0到180°)和俯仰(0到360°)上独立使用双回路,从而使您可以将球体与子午线和平行线网格化。