以下trig函数如何在此Objective-C代码中起作用?

时间:2011-12-01 16:42:37

标签: iphone objective-c math

任何熟悉trig的人都可以解释一下这段代码中的数学应该做什么吗?为什么要使用罪而不是cos或tan?为什么使用cos代替罪或晒黑?我理解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)));

2 个答案:

答案 0 :(得分:2)

由于罪opposite超过hypotenuse,因此sin * hypotenuse也是opposite。给定一个角度和一侧(半径),迷你公式正在另一侧。同样,cos用于获取adjacent

答案 1 :(得分:1)

i * M_PI_2 / (count - 1)代表一个角度。三个RADIUS变量都是圆的半径。因此,当i变化时,它会追踪3个不同大小的圆圈,这些圆圈都相对于STARTPOINT放置。查看维基百科上的unit circle,了解有关sin / cos原因的详细信息。