任何熟悉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)));
答案 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原因的详细信息。