Vector 当对象在二维平面上顺时针或逆时针旋转时,计算新运动矢量(dx,dy)的通用方法

Vector 当对象在二维平面上顺时针或逆时针旋转时,计算新运动矢量(dx,dy)的通用方法,vector,Vector,我正在写一个程序来玩街头足球棋盘游戏,球在二维平面上移动(表示为二维数组)。坐标(x,y)处的球可以向前、向左或向右移动。球当前移动的方向由(dx,dy)表示。每次踢球后的迭代,球的新位置将是(x+dx,y+dy)。e、 假设它正在向东南移动。那么(dx,dy)将是(+1,+1) 但请告诉我,当球‘决定’向左或向右(顺时针或逆时针45度)旋转时,有没有一种计算新的(dx,dy)的通用方法 i、 如果(dx,dy)=(+1,+1),那么当球顺时针转动时,新的(dx,dy)将是(0,1)我认为这可能

我正在写一个程序来玩街头足球棋盘游戏,球在二维平面上移动(表示为二维数组)。坐标(x,y)处的球可以向前、向左或向右移动。球当前移动的方向由(dx,dy)表示。每次踢球后的迭代,球的新位置将是(x+dx,y+dy)。e、 假设它正在向东南移动。那么(dx,dy)将是(+1,+1)

但请告诉我,当球‘决定’向左或向右(顺时针或逆时针45度)旋转时,有没有一种计算新的(dx,dy)的通用方法


i、 如果(dx,dy)=(+1,+1),那么当球顺时针转动时,新的(dx,dy)将是(0,1)

我认为这可能会有所帮助。假设你有向量(x,y),你想把它旋转到θθ。为此,必须使用以下公式将旋转矩阵上的向量乘以2x1矩阵:

因此,假设
X
轴向右,而
Y
轴向上,顺时针旋转45度时,必须将
cos(-pi/4)
sin(-pi/4)
放在那里。对于逆时针方向,分别有
cos(pi/4)
sin(pi/4)


更多信息:,

谢谢。我以前试过这个公式,但我没有考虑转换成弧度,这就是为什么它会出错的原因。但它是pi/2还是pi/4,但即使在这种情况下,我也没有得到预期的值。假设(dx,dy)为(1,1),即航向SE,则逆时针转动表示θ=45度。我期望值为(1,0)即向东。但是我得到了一个分数。事实上,新的(dx,dy)=(0,1.414)@Krishnakumar_Muraleedharan,使用公式你会得到[0,1.414],这是正确的结果。说明:圆心位于(0,0)和(1,1)的圆所属的圆的sqrt(2)半径约为1.414。现在,点(0,1.414)显然位于y轴上,并且属于同一个圆。(1,1)和(0,sqrt(2))向量之间的角度正好是45度或π/4弧度。我添加了一张图片来说明问题。谢谢Alexey。我将值四舍五入以获得预期值,现在算法正在按预期工作。谢谢