Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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
Java 利用变换矩阵旋转顶点_Java_Lwjgl - Fatal编程技术网

Java 利用变换矩阵旋转顶点

Java 利用变换矩阵旋转顶点,java,lwjgl,Java,Lwjgl,我正在尝试使用lwjgl类旋转顶点。我尝试了以下代码: float rotY = (float) Math.toRadians(180); Matrix4f transMat = new Matrix4f(); transMat.rotate(rotY, new Vector3f(0.0f, 1.0f, 0.0f)); transMat.translate(new Vector3f(1.0f, 0.0f, 0.0f)); Vector4f vecPos

我正在尝试使用lwjgl类旋转顶点。我尝试了以下代码:

    float rotY = (float) Math.toRadians(180);

    Matrix4f transMat = new Matrix4f();
    transMat.rotate(rotY, new Vector3f(0.0f, 1.0f, 0.0f));
    transMat.translate(new Vector3f(1.0f, 0.0f, 0.0f));

    Vector4f vecPosMod = new Vector4f(1.0f, 0.0f, 0.0f, 1.0f);
    Matrix4f.transform(transMat, vecPosMod, vecPosMod);

它应该将
矢量3f(1.0f,0.0f,0.0f)
旋转180度,但不幸的是,经过所有计算,vecPosMod是
(-2.0,0.0,1.7484555E-7,1.0)
。我希望它是
(-1.0,0.0,0.0,1.0)
。如何进行?

旋转后,将沿X轴的平移应用于矩阵。 这是在执行旋转后,将位置沿X轴平移一个单位,结果是-2.0而不是-1.0

试试这个:

  float rotY = (float) Math.toRadians(180);

  Matrix4f transMat = new Matrix4f();
  transMat.rotate(rotY, new Vector3f(0.0f, 1.0f, 0.0f));

  Vector4f vecPosMod = new Vector4f(1.0f, 0.0f, 0.0f, 1.0f);
  Matrix4f.transform(transMat, vecPosMod, vecPosMod);
它给出了以下结果:

(-1.0 0.0 8.742278E-8 1.0)

在java中应用带浮点数的旋转变换后,8.742278E-8可能接近于0.0。

旋转后,将沿X轴的平移应用于矩阵。 这是在执行旋转后,将位置沿X轴平移一个单位,结果是-2.0而不是-1.0

试试这个:

  float rotY = (float) Math.toRadians(180);

  Matrix4f transMat = new Matrix4f();
  transMat.rotate(rotY, new Vector3f(0.0f, 1.0f, 0.0f));

  Vector4f vecPosMod = new Vector4f(1.0f, 0.0f, 0.0f, 1.0f);
  Matrix4f.transform(transMat, vecPosMod, vecPosMod);
它给出了以下结果:

(-1.0 0.0 8.742278E-8 1.0)
在java中应用带浮点数的旋转变换后,8.742278E-8可能接近0.0