2017-11-18 178 views
1

enter image description here如何获得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); 
} 

enter image description here

但是,如上述的图像中,我需要得到对于在x轴倾斜的圆圈的圆周坐标。

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

回答

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一样使用它。