主要内容
极坐标
每当我们在 ProcessingJS 中显示图像时,我们都必须指定一个像素位置,一组
x
和 y
坐标。这些坐标被称为笛卡尔坐标,以提出了笛卡尔空间背后的思想的法国数学家勒内·笛卡尔命名。另一个有用的坐标系被称为极坐标,它将空间中的一个点描述为围绕原点和原点半径的旋转角度。从向量的角度来考虑这个问题:
- 笛卡尔坐标—— 向量的分量 x,y
- 极坐标——向量的大小(长度)和方向(角度)
但是,ProcessingJS中的绘图函数不理解极坐标。每当我们要在ProcessingJS中显示某些内容时, 我们必须将位置指定为 (x, y) 笛卡尔坐标。然而,有时在设计时,用极坐标思考更加方便。令人高兴的是,通过三角函数,我们可以在极性和笛卡尔之间来回转换,这使我们能够用我们想用的任何坐标系来设计,但始终使用笛卡尔坐标来画图。
希腊字母 θ (theta) 通常被用来表示角度,极坐标通常称为 (r, θ) 而不是 (x, y)。因此,在处理极坐标时,我们现在将使用 "theta" 作为角度的首选变量名。
sine(theta) = y/r → y = r * sine(theta)cosine(theta) = x/r → x = r * cosine(theta)
例如,如果
r
为 75,而 theta
为45度(或 PI/4 弧度),我们可以计算 x
和 y
如下所示。在ProcessingJS中, 正弦和余弦的函数分别为 sin()
和 cos()
。它们各取一个参数,一个以度数为单位的角度。var r = 75;
var theta = 45;
// 极坐标系转化为笛卡尔坐标系
var x = r * cos(theta);
var y = r * sin(theta);
这一类的转换在某些应用中很有用。例如,用笛卡尔坐标沿着圆形路径移动一个图像并不容易。而用极坐标就很简单:增加角度!
下面是我们如何使用极坐标转换来制作一个简单的旋转图像:
“自然模拟”系列课程是由 Daniel Shiffman 的 "编程的本质" 衍生而来,基于 知识共享 著名-非商用性 3.0 本地化许可协议。