Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用JavaScript编写这个C#Z轴向量旋转?_Javascript_C#_Xna - Fatal编程技术网

如何用JavaScript编写这个C#Z轴向量旋转?

如何用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,

我用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, -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让我想起了我的天体物理学学位。这应该是一个简单的例子,使用简化的矩阵,并确保在需要时转换为弧度。完美,让我回忆起我的天体物理学学位。这应该是一个简单的例子,使用简化的矩阵,并确保在需要时转换为弧度。完美,让我回忆起我的天体物理学学位。这应该是一个简单的例子,使用简化的矩阵,并确保在需要时转换为弧度。完美,让我回忆起我的天体物理学学位。应该是一个简单的例子,使用简化矩阵,并确保在需要时转换为弧度。