非倾斜圆的周长坐标(如上图所示)是使用以下代码获得的。
//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);
}
但是,如上图所示,我需要获得在x轴上倾斜的圆的圆周坐标。
当您知道原点和半径以及沿x轴的倾斜值时,您如何知道倾斜圆周长的三维坐标?
答案 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一样使用它。