下面的三角函数是如何在Objective-C代码中工作的



任何精通三角的人都可以解释这段代码中的数学应该做什么吗?为什么用sin代替cos或tan?为什么用cos而不是sin或tan?我知道sin/cos/tan最基本的形式是什么,但一旦它们被打到动画类型的代码中,我就有点迷路了。

 item.endPoint = CGPointMake(STARTPOINT.x + ENDRADIUS * sinf(i * M_PI_2 / (count - 1)), STARTPOINT.y - ENDRADIUS * cosf(i * M_PI_2 / (count - 1)));
 item.nearPoint = CGPointMake(STARTPOINT.x + NEARRADIUS * sinf(i * M_PI_2 / (count - 1)), STARTPOINT.y - NEARRADIUS * cosf(i * M_PI_2 / (count - 1)));
 item.farPoint = CGPointMake(STARTPOINT.x + FARRADIUS * sinf(i * M_PI_2 / (count - 1)), STARTPOINT.y - FARRADIUS * cosf(i * M_PI_2 / (count - 1)));

既然sin等于opposite/hypotenuse,那么sin * hypotenuse也等于opposite。给定一个角度和一条边(半径),迷你公式计算出另一条边。类似地,cos被用来得到adjacent

i * M_PI_2 / (count - 1)表示一个角度。三个RADIUS变量都是圆的半径。因此,随着i的变化,它将描出3个不同大小的圆,它们都相对于STARTPOINT放置。关于sin/cos的更多信息,请查看wikipedia上的单位圆

最新更新