# Euler and Quaternion convert each other got difference result

**URL:** <https://discourse.threejs.org/t/euler-and-quaternion-convert-each-other-got-difference-result/36961>\
**Category:** Questions\
**Tags:** math\
**Created:** [April 12, 2022, 3:55am UTC](https://discourse.threejs.org/t/euler-and-quaternion-convert-each-other-got-difference-result/36961 "2022-04-12T03:55:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sonygod](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/sonygod/32/23416_2.png) [@sonygod](https://discourse.threejs.org/u/sonygod)\
**Post date:** [April 12, 2022, 3:55am UTC](https://discourse.threejs.org/t/euler-and-quaternion-convert-each-other-got-difference-result/36961/1 "2022-04-12T03:55:14Z")

</div>

why these quaternions have difference result?

```nohighlight
var quaternion1 = new Quaternion();

        quaternion1.fromArray([20, 1, 0, 0]);

        var euler4 = new Euler();

        euler4.setFromQuaternion(quaternion1);

        var euler5 = new Euler(euler4.x, euler4.y, euler4.z, 'XYZ');

        var quaternion2 = new Quaternion();

         quaternion2.setFromEuler(euler5, true);

        console.log( quaternion2.x, quaternion2.y, quaternion2.z, quaternion2.w);

        console.log(quaternion1.x, quaternion1.y, quaternion1.z, quaternion1.w);

```

got

quaternion2

-0.6982147981960125, -0.7158883261934794, -4.3835517360990044e-17, 4.275332588640309e-17

quaternion1  
20, 1, 0, 0

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [April 12, 2022, 8:08am UTC](https://discourse.threejs.org/t/euler-and-quaternion-convert-each-other-got-difference-result/36961/2 "2022-04-12T08:08:15Z")

</div>

> [@sonygod](#):
>
> `quaternion1.fromArray([20, 1, 0, 0]);`

That is no valid code. The values of a quaternion’s components lie in the range `[-1, 1]`. Also notice that these values are no angle values in degrees or radians. They are not considered as human readable.

I highly recommend to never setup the components of a quaternion in a manual way. The common ways are:

- Define a quaternion from euler angles (via `setFromEuler()`).
- Define a quaternion via methods like `lookAt()`, `rotateTowards()` or `setFromAxisAngle()`.

---

<div class="post-metadata">

**Author:** ![sonygod](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/sonygod/32/23416_2.png) [@sonygod](https://discourse.threejs.org/u/sonygod)\
**Post date:** [April 12, 2022, 9:10am UTC](https://discourse.threejs.org/t/euler-and-quaternion-convert-each-other-got-difference-result/36961/3 "2022-04-12T09:10:52Z")

</div>

oh,sorry ,i see .

[20, 1, 0, 0] is from blender

blender quaternions is [w,x,y,z] and three.js is [x,y,z,w]
