If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

极坐标

每当我们在 ProcessingJS 中显示图像时,我们都必须指定一个像素位置,一组 xy 坐标。这些坐标被称为笛卡尔坐标,以提出了笛卡尔空间背后的思想的法国数学家勒内·笛卡尔命名。
另一个有用的坐标系被称为极坐标,它将空间中的一个点描述为围绕原点和原点半径的旋转角度。从向量的角度来考虑这个问题:
  • 笛卡尔坐标—— 向量的分量 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 弧度),我们可以计算 xy如下所示。在ProcessingJS中, 正弦和余弦的函数分别为 sin()cos()。它们各取一个参数,一个以度数为单位的角度。
var r = 75;
var theta = 45;

// 极坐标系转化为笛卡尔坐标系
var x = r * cos(theta);
var y = r * sin(theta);
这一类的转换在某些应用中很有用。例如,用笛卡尔坐标沿着圆形路径移动一个图像并不容易。而用极坐标就很简单:增加角度!
下面是我们如何使用极坐标转换来制作一个简单的旋转图像:

“自然模拟”系列课程是由 Daniel Shiffman 的 "编程的本质" 衍生而来,基于 知识共享 著名-非商用性 3.0 本地化许可协议

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.