/// <summary>
/// 生成球形分布点位
/// </summary>
/// <param name="PointNum">生成的点个数</param>
/// <param name="radius">球体半径</param>
public void CreatPointOnSphere(int PointNum, float radius)
{
//生成
for (int i = 0; i < PointNum; i++)
{
float y = (float)i * 2.0f / PointNum + (1 / PointNum) - 1.0f;
float r = Mathf.Sqrt(1.0f - y * y);
float phi = i * 2.4f;
Vector3 pos = new Vector3(Mathf.Cos(phi) * r * radius, y * radius, Mathf.Sin(phi) * r * radius);
CreatPoint(pos, i);
}
}
void CreatPoint(Vector3 pos, int tempIndex)
{
GameObject obj = (GameObject)Instantiate(Resources.Load("Cube"));
obj.transform.SetParent(container);
obj.transform.localPosition = pos;
obj.name = tempIndex + "";
}
一段球形分布的代码
最新推荐文章于 2021-12-03 16:29:54 发布