# Confused about Euler axes and JME axes

Hi,

I’m quite confused about yaw, pitch and roll in JME. I learned that the Euler axes are like its shown in this picture:

Pitch: Rotating around the X-Axis

Yaw: Rotating around the Y-Axis

Roll: Rotating around the Z-Axis

But if i build a basic project with a rotating box, it has a different effect than expected.

[java]package mygame;

import com.jme3.app.SimpleApplication;

import com.jme3.material.Material;

import com.jme3.math.ColorRGBA;

import com.jme3.math.Vector3f;

import com.jme3.renderer.RenderManager;

import com.jme3.scene.Geometry;

import com.jme3.scene.Spatial;

import com.jme3.scene.shape.Box;

public class Main extends SimpleApplication {

Box b;

Spatial geom;

public static void main(String[] args) {

Main app = new Main();

app.start();

}

@Override

public void simpleInitApp() {

b = new Box(Vector3f.ZERO, 1, 1, 1);

geom = new Geometry(“Box”, b);

Material mat = new Material(assetManager, “Common/MatDefs/Misc/Unshaded.j3md”);

mat.setColor(“Color”, ColorRGBA.Blue);

geom.setMaterial(mat);

rootNode.attachChild(geom);

}

@Override

public void simpleUpdate(float tpf) {

geom.rotate(2 * tpf, 0, 0);

}

@Override

public void simpleRender(RenderManager rm) {

}

}

[/java]

In the Javadoc of the Spatial class, the method rotate() is defined as: [java]rotate(float yaw, float roll, float pitch)[/java]

But in the test example the box is rotating around X-Axis. (As shown in the first image on this page: https://wiki.jmonkeyengine.org/legacy/doku.php/jme3:math)

I hope someone can enlighten me

The labels in these methods are incorrect.

It would be better if they were written:

rotate( xAxis, yAxis, zAxis )

In other words:

rotate( pitch, yaw, roll )

This is pretty widespread as it affects Quaternion.fromAngles(), etc. also. I don’t know why it hasn’t been fixed yet but at the same time, I haven’t bothered to fix it myself either.

1 Like

Wow, what fast anwser. That makes everything clear. Thanks

I committed a fix for this