2017-08-07 305 views
0

我基于两个位置动态创建一个圆;第一个是中心,第二个是半径。然后我确定有多少物体会贴合到圆周上int fillCount = Mathf.RoundToInt(circumference/sizeOfObject);圆圈上物体的均匀分布

所以现在我已经有了一个圆圈,我知道有多少东西适合它,我知道圆周,我知道半径和我拼凑了一个函数,它可以找到圆上任何给定点的Vector3。

我无法弄清楚如何平均分配每个对象。即每'n'度放置一个物体。我不认为我需要担心弧重新参数化,还是我?我认为答案在于通过使用反余弦/正弦来找到放置的程度,但我不确定,而且我的数学不太好。

如果有人有任何意见或建议,我将不胜感激。

回答

3

如果您知道圆中有多少个物体,您可以将360deg除以物体的数量,以确定每个物体放置在圆上的角度。由于我们知道圆上的点位于x=r*cos(angle), y=r*sin(angle),因此您可以将此Vector2添加到圆圈的Vector2中心。

举个例子,如果你有3个物体放在圆周上。通过除360/3 = 120得到你的角度。每个物体将被放置在彼此120度。
选择你的出发点(我们会选0度),
Vector2(r*Mathf.Deg2Rad*cos(0), r*Mathf.Deg2Rad*sin(0))
下一个对象将在120deg,这将是
Vector2(r*Mathf.Deg2Rad*cos(120), r*Mathf.Deg2Rad*sin(120))
同样,第三对象将在240deg,
Vector2(r*Mathf.Deg2Rad*cos(240), r*Mathf.Deg2Rad*sin(240))

+0

点上,非常感谢您的快速答复! – Tony