2009-09-20 72 views
2

我想更好地理解这段代码在做什么。它用Objective-C编写,但对于任何具有C背景的人都应该熟悉。 sin/cos数学究竟在这里做什么?此外,有没有人有这样的游戏概念学习触发的良好建议?游戏中的数学逻辑(基本触发),这个代码在做什么?

for (int i = 0; i < GAME_CIRCLES; i++) 
{ 
    point.x = center.x - sin (degree) * RADIUS; 
    point.y = center.y + cos (degree) * RADIUS; 
    mPieRect[i] = CGRectMakeWithCenter (point, RADIUS - 4); 
    degree += PI/3.0; 
} 

回答

7

这是一个圆的参数方程(见wikipedia

我猜“度”变量实际上是radians而非度虽然。圆周有360度,或2 * Pi弧度。

通过推进由π/ 3度变量,它的步进一圈

+0

感谢保罗的1/6!说得通。尽管如此,快速的问题是,x/y坐标是如何计算出来的,究竟是什么center.x - sin(度)?RADIUS和后续行? – randombits 2009-09-20 20:00:27

+0

,计算从角度'度'和半径'RADIUS'的中心点的位置。如果您要以小增量循环显示0 ... 2PI的度数并绘制结果点,则会出现一个圆圈。 – 2009-09-20 20:03:52

+0

此外,我猜GAME_CIRCLES是6使六角形周围的6个点的循环步骤,所以它存储一个矩形集中在mPieRect数组中的每个点。 – 2009-09-20 20:07:04