引言
球体一直被称为最完美的几何体,它是只有一个面并且连续曲面的立体图形,用肉眼看来球体在各个位置观看都是完全一致的。
用Processing画一个球体是再简单不过了,只需要下面几行短短的代码,就可以绘制一个球体。
void setup(){
size(500, 500, P3D);
}
void draw(){
background(0);
translate(width / 2, height / 2);
sphere(200);
}
以上代码的效果如下。
但今天我们要绘制的球体是与众不同的,因为它是由文字构成的。请大家看下面的效果。这个作品是作者用JavaScript写的,我在这个基础上做了相应的简化,用Processing近似模拟了这个效果,接下来就给大家讲解如何用代码实现。
准备:球体方程
对于球体上的任何的一个点P来说, 我们可以用三个变量来描述:第一个是点P到球心的长度,也就是该球体的半径;第二个是点P和球心的连线与x、y轴所构成的平面所成的夹角的角度;第三个就是点P在x、y轴所构成的平面的投影点与球心的连线和x轴所成夹脚的角度。
上面所说的三个变量分别对应下面的r、B、A。
那么接下来我们要做的就是求点P在直角坐标系下的坐标(x,y,z),根据上图我们不难得出以下的等式。
x = r * cos(B) * cos(A)
y = r *