C# 在游戏对象旋转时计算圆上的角点
我在统一的3d世界空间中有一个平面,我知道角点和轴。如果旋转该对象,我需要找到新的角点 在下图中,假设我知道左上角和右下角的矢量,但如果我顺时针旋转该平面5度,我如何计算新角在世界空间中的位置 如果可能的话,我想我正在寻找用c#做这件事的数学方法。C# 在游戏对象旋转时计算圆上的角点,c#,unity3d,C#,Unity3d,我在统一的3d世界空间中有一个平面,我知道角点和轴。如果旋转该对象,我需要找到新的角点 在下图中,假设我知道左上角和右下角的矢量,但如果我顺时针旋转该平面5度,我如何计算新角在世界空间中的位置 如果可能的话,我想我正在寻找用c#做这件事的数学方法。 您可以使用四元数.Euler对点(相对于轴)应用旋转。 然后将枢轴矢量3添加回结果以获得最终位置 Vector3 corner; // absolute position of the corner Vector3 pivot; // absolut
您可以使用
四元数.Euler
对点(相对于轴)应用旋转。
然后将枢轴矢量3添加回结果以获得最终位置
Vector3 corner; // absolute position of the corner
Vector3 pivot; // absolute position of the pivot
Quaternion rotation = Quaternion.Euler(x,y,z); // x, y, z rotation
Vector3 newCorner = pivot + rotation * (corner - pivot); // absolute position of the corner after rotation
大野牛的回答很好。我可以补充的一点是,您还可以:
公共游戏对象角落;
void GetCornerPosition()
{
返回corner.transform.position;
}
这是另一种不用任何计算就可以得到这些位置的方法。这太棒了,谢谢你的回答。