目录

矢量加法

距离与长度

三角函数

图示:正弦、余弦与正切

圆周函数

简谐运动

频率与振幅

波形加法与乘法

反函数

其他材料

表达式基础

参考表格

工程文件连接

返回主页

三角函数——sine(正弦),cosine(余弦)与(tangent)正切

三角函数是几何学的一个分支,用来研究三角形中边和角的关系。我们前面提到过,矢量可以由三角形组成,所以我们可以对矢量应用三角函数。

三角函数主要包括sine(正弦),cosine(余弦)与(tangent)正切,我们将角A作为需要计算的角度,函数关系如下图所示:

角A的正弦值等于该角的对边除以该角的斜边,角A的余弦值等于该角的邻边除以该角的斜边,角A的正切值等于该角的对边除以该角的临边,我们可以使用下面的助记符来快速记忆这些函数:

在Javascript语言中。三角函数包含在“math”对象中,所以我们这样书写三角函数:

Math.sin(angle)
Math.cos(angle)
Math.tan(angle)

所有的三角函数的返回值均为数字(标量),正弦和余弦函数的返回值的范围为-1至1,正切函数的返回值范围为负整数至正整数。

弧度

在Javascript中,我们使用三角函数时用弧度来表示一个角而不是用度来表示一个角,弧度仅仅是一种不同于度的角度度量单位。

具体的说,弧度就是角度在圆周上所对应的一段弧线的长度,如下图所示:

因为圆的周长等于2*PI*radius,所以一个完整的圆周期(360度)就等于2PI弧度,因为PI的近似值3.1414926535897932384626433832因此,我们可以利用公式 1弧度=360/2*PI 得到1弧度近似等于57.30度;同样,1度=2*PI/360=0.017弧度。

在这里需要强调一下,AE中的角度以度而非弧度来计量,所以在使用相关的表达式进行计算时就需要进行单位之间的转换。我们可以使用上面提到过的交换率来换算单位,频繁的进行单位转换计算一定会泯灭我们的设计灵感,AE为我们提供了两个非常实用的转换函数,以提高我们的设计效率与水准:

radians_to_degrees(angle)
degrees_to_radians(angle)

例如,下面的表达式将计算当前图层旋转角度的正弦值:

Math.sin(degrees_to_radians(rotation));

该表达式首先将旋转参数单位从度转换到弧度,然后应用到三角函数中计算出该角的正弦值。

计算未知边长度

在一个直角三角形中,如果我们知道了一条边的长度和一个角的度数,就可以利用三角函数计算出其他边的长度。 (如果我们只知道两条边的长度可以使用勾股定理 计算出另外一条边的长度)

前面的教程我们已经提到过,三角函数就是两条边的比值,所以我们可以使用公式来计算出任意一条边的长度:

opposite = hypotenuse*sin(A)
adjacent = hypotenuse*cos(A)
hypotenuse = opposite/sin(A) or adjacent/cos(A)

稍后,我们会将这种方法应用到实际的制作中,现在我们需要利用这些方程来研究一些关系特性。例如,通过第一个方程我们就可以总结出有两种方法来增加对边的长度:增加斜边的长度或者增加角A的正弦值;同样,可以通过增加斜边的长度和角A的余弦值来增大邻边的长度。

经验和勾股定理告诉我们,直角三角形中两条直角边互为消长关系,一条直角边的增加将导致另一条直角边的减小——除非斜边也增大。
因此,正弦函数与余弦函数也互为相反关系:

对边值越大,临边值越小

// 利用上面的公式计算出对边与临边
hypotenuse*sin(A) gets bigger, hypotenuse*cos(A) gets smaller.

// 我们可以忽略斜边值
sin(A) gets bigger, cos(A) gets smaller

从上面的方程式中我们可以看出,角的正弦值越大,其余弦值就越小,我们将在后面的教程中讨论这种函数关系。

 

所有内容版权归JJ Gifford.所有,翻译权归CG频道所有,违者必纠。