如何获得Unity C#中的倾斜圆的圆周坐标?
问题描述:
使用以下代码获得非倾斜圆的周长坐标,如上图所示。
//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轴的倾斜值时,如何知道倾斜圆的圆周的三维坐标?
答
从统一文档: 与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一样使用它。