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

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

主要内容

旋转

除了移动网格外, 还可以使用 rotate() 函数来对使其旋转。此函数只有一个参数, 即要旋转的度数:degrees
在可汗学院中使用的 ProcessingJS 版本中,所有与旋转有关的函数都以角度为单位,但是也可以将他们设置为使用弧度(角度测量的标准单位)。如果你想要使用弧度,你可以将 angleMode = "radians"; 放在你程序的顶部。
当我们在用角度来描述角的时候,我们叫一整圈的角度为 360°。当我们在用弧度来描述角的时候,我们叫一整圈的弧度为 2π 。下面的图示可以帮你理解角度与弧度。
想要学习或者复习一下角度的测量?你可以看看可汗学院中的这篇"角度的基础与测量"
先让我们来点简单的吧:将一个正方形旋转45度:
瞧,发生什么了?正方形为什么会动,又为什么会被切断了呢?答案是:正方形其实没有动,而旋转的是网格。下面就是实际上发生的事情。可以看到,在旋转坐标系上,正方形的左上角仍然在 (40, 40)。

用正确的方式旋转

旋转正方形的正确方法是:
  • 将坐标系的原点 (0, 0) 平移到你要旋转的正方形的左上角。
  • 将网格旋转 45° (弧度为 π/4)
  • 再在原点处绘制正方形。
下面就是以正确的方式旋转了正方形的程序。注意代码中的差异:这个程序包括了 translate(40, 40); ,并且用rect(**0, 0,** 40, 40); 取代了 rect(**40, 40,** 40, 40);

本文改编自 J David Eisenberg 的 2D Transformations,在 Creative Commons Attribution-NonCommercial-ShareAlike 许可证下使用。

想加入讨论吗?

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