如何在Unity C#中获得倾斜圆的圆周坐标?

时间:2017-11-18 04:38:28

标签: c# unity3d

enter image description here

非倾斜圆的周长坐标(如上图所示)是使用以下代码获得的。

//c=Center
//r=radius
//i=angle
Vector3 FindPoint(Vector3 c, float r, int i)
{
    return c + Quaternion.AngleAxis(1.0f * i, Vector3.forward) * (Vector3.right * r);
}

//Example of securing coordinates
for(int i=0;i<360;i++)
{
    point[i] = FindPoint(center, radius, i);
}

enter image description here

但是,如上图所示,我需要获得在x轴上倾斜的圆的圆周坐标。

当您知道原点和半径以及沿x轴的倾斜值时,您如何知道倾斜圆周长的三维坐标?

1 个答案:

答案 0 :(得分:2)

来自团结文件: 与Vector3.forward不同,Transform.forward在考虑旋转的同时移动GameObject。 因此,您可以替换此行:

return c + Quaternion.AngleAxis(1.0f * i, Vector3.forward) * (Vector3.right * r);

以下一个:

return c + Quaternion.AngleAxis(1.0f * i, transform.forward) * (transform.right * r);

**我猜测你的脚本附加到倾斜的物体上,所以使用了变换。否则,您需要像tiltedObj.transform一样使用它。