/// <summary>
/// 获取旋转后的点
/// </summary>
/// <param name="pivot">旋转中心</param>
/// <param name="point">旋转点</param>
/// <param name="rotation">旋转角度</param>
/// <returns></returns>
Vector2Int RotatePoint(Vector2Int pivot, Vector2Int point, Quaternion rotation)
{
// 计算旋转中心点与待旋转点之间的向量
Vector2 dir = point - pivot;
// 计算旋转矩阵
Matrix4x4 rotationMatrix = Matrix4x4.TRS(Vector3.zero, rotation, Vector3.one);
// 将向量dir与旋转矩阵相乘,得到旋转后的向量
Vector2 rotatedDir = rotationMatrix * dir;
// 将旋转后的向量与旋转中心点的坐标相加,得到旋转后的点的坐标
Vector2 rotatedPoint = pivot + rotatedDir;
// 更新旋转后的点的位置
return new Vector2Int((int)rotatedPoint.x, (int)rotatedPoint.y);
}
unity获取一个点绕另一个点旋转固定角度后得到的点
最新推荐文章于 2024-07-17 18:17:42 发布