如何用JavaScript编写这个C#Z轴向量旋转?
我用C#编写了一个非常简单的XNA游戏,它使用下面的方法来旋转改变射弹朝目标飞去。这样做的目的是使射弹在某种程度上“归位”:如何用JavaScript编写这个C#Z轴向量旋转?,javascript,c#,xna,Javascript,C#,Xna,我用C#编写了一个非常简单的XNA游戏,它使用下面的方法来旋转改变射弹朝目标飞去。这样做的目的是使射弹在某种程度上“归位”: float rotation; Vector2 velocity; int speed; public void SetRotation(float value) // Make the projectiles homing { rotation = value; velocity = Vector2.Transform(new Vector2(0,
float rotation;
Vector2 velocity;
int speed;
public void SetRotation(float value) // Make the projectiles homing
{
rotation = value;
velocity = Vector2.Transform(new Vector2(0, -speed),
Matrix.CreateRotationZ(rotation));
}
我正在尝试(出于我自己的学习目的——我对JavaScript非常陌生)将我的游戏移植到JavaScript,并允许它在画布中玩。有人能建议我如何将上述方法重新编写为JS函数吗
对于一个JavaScript的初学者来说,使用现有的某种框架最容易做到这一点吗?旋转向量的方法涉及一些基本的矩阵数学。(请原谅ASCII艺术。没有乳胶会让这更困难) 首先以齐次坐标形式表示向量:
[ x ]
v = | y |
| z |
[ 1 ]
旋转矩阵由以下公式提供:
[ cos(r) -sin(r) 0 0 ]
M = | sin(r) cos(r) 0 0 |
| 0 0 1 0 |
[ 0 0 1 1 ]
其中r
是围绕Z
要应用变换,将矩阵M
乘以向量v
:
[ cos(r) -sin(r) 0 0 ] [ x ]
v' = Mv = | sin(r) cos(r) 0 0 | * | y |
| 0 0 1 0 | | z |
[ 0 0 0 1 ] [ 1 ]
简化乘法运算,得出公式
v' = { x' = x * cos(r) - y * sin(r)
{ y' = x * sin(r) + y * cos(r)
{ z' = z
(注意:在Javascript中,
sin()
和cos()
函数以弧度为参数。)旋转向量的方法涉及一些基本的矩阵数学。(请原谅ASCII艺术。没有乳胶会让这更困难)
首先以齐次坐标形式表示向量:
[ x ]
v = | y |
| z |
[ 1 ]
旋转矩阵由以下公式提供:
[ cos(r) -sin(r) 0 0 ]
M = | sin(r) cos(r) 0 0 |
| 0 0 1 0 |
[ 0 0 1 1 ]
其中r
是围绕Z
要应用变换,将矩阵M
乘以向量v
:
[ cos(r) -sin(r) 0 0 ] [ x ]
v' = Mv = | sin(r) cos(r) 0 0 | * | y |
| 0 0 1 0 | | z |
[ 0 0 0 1 ] [ 1 ]
简化乘法运算,得出公式
v' = { x' = x * cos(r) - y * sin(r)
{ y' = x * sin(r) + y * cos(r)
{ z' = z
(注意:在Javascript中,
sin()
和cos()
函数以弧度为参数。)旋转向量的方法涉及一些基本的矩阵数学。(请原谅ASCII艺术。没有乳胶会让这更困难)
首先以齐次坐标形式表示向量:
[ x ]
v = | y |
| z |
[ 1 ]
旋转矩阵由以下公式提供:
[ cos(r) -sin(r) 0 0 ]
M = | sin(r) cos(r) 0 0 |
| 0 0 1 0 |
[ 0 0 1 1 ]
其中r
是围绕Z
要应用变换,将矩阵M
乘以向量v
:
[ cos(r) -sin(r) 0 0 ] [ x ]
v' = Mv = | sin(r) cos(r) 0 0 | * | y |
| 0 0 1 0 | | z |
[ 0 0 0 1 ] [ 1 ]
简化乘法运算,得出公式
v' = { x' = x * cos(r) - y * sin(r)
{ y' = x * sin(r) + y * cos(r)
{ z' = z
(注意:在Javascript中,
sin()
和cos()
函数以弧度为参数。)旋转向量的方法涉及一些基本的矩阵数学。(请原谅ASCII艺术。没有乳胶会让这更困难)
首先以齐次坐标形式表示向量:
[ x ]
v = | y |
| z |
[ 1 ]
旋转矩阵由以下公式提供:
[ cos(r) -sin(r) 0 0 ]
M = | sin(r) cos(r) 0 0 |
| 0 0 1 0 |
[ 0 0 1 1 ]
其中r
是围绕Z
要应用变换,将矩阵M
乘以向量v
:
[ cos(r) -sin(r) 0 0 ] [ x ]
v' = Mv = | sin(r) cos(r) 0 0 | * | y |
| 0 0 1 0 | | z |
[ 0 0 0 1 ] [ 1 ]
简化乘法运算,得出公式
v' = { x' = x * cos(r) - y * sin(r)
{ y' = x * sin(r) + y * cos(r)
{ z' = z
(注意:在Javascript中,
sin()
和cos()
函数以弧度为参数。)Perfect让我想起了我的天体物理学学位。这应该是一个简单的例子,使用简化的矩阵,并确保在需要时转换为弧度。完美,让我回忆起我的天体物理学学位。这应该是一个简单的例子,使用简化的矩阵,并确保在需要时转换为弧度。完美,让我回忆起我的天体物理学学位。这应该是一个简单的例子,使用简化的矩阵,并确保在需要时转换为弧度。完美,让我回忆起我的天体物理学学位。应该是一个简单的例子,使用简化矩阵,并确保在需要时转换为弧度。