# Rotating a vector using Quaternion

**URL:** <https://forum.babylonjs.com/t/rotating-a-vector-using-quaternion/6521>\
**Category:** Questions\
**Created:** [October 23, 2019, 7:06am UTC](https://forum.babylonjs.com/t/rotating-a-vector-using-quaternion/6521 "2019-10-23T07:06:10Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sorab2142](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sorab2142/32/4678_2.png) [@sorab2142](https://forum.babylonjs.com/u/sorab2142)\
**Post date:** [October 23, 2019, 7:06am UTC](https://forum.babylonjs.com/t/rotating-a-vector-using-quaternion/6521/1 "2019-10-23T07:06:11Z")

</div>

I am rotating a Vector2 by 90 degrees using the following code:

```auto
    export const V2Rotate = (v: Vector2, q: Quaternion) => {
        var matrix = new Matrix();
        q.toRotationMatrix(matrix);
        var rotatedvect = Vector2.Transform(v, matrix);
        return rotatedvect;
    }

```

But it doesnt seem to give the correct values, I am rotating a point (-121,0) by 90 degrees using

`var quaternion1 = Quaternion.FromEulerAngles(0, 90, 0);`

but instead of (0,-121) I get some other values.  
I have checked with other Quaternions in case the axis was wrong but those are incorrect as well.

```
 var quaternion = Quaternion.FromEulerAngles(Angle, 0, 0);
 var quaternion1 = Quaternion.FromEulerAngles(0, Angle, 0); 
 var quaternion2 = Quaternion.FromEulerAngles(0, 0, Angle);

```

my actual point is (-121,0) and I get these results for those 3 cases:  
(-121,0)  
(54,0)  
(54,-108)  
Is it rotating from center and not origin? during the transformation?

Coming from Unreal Engine, I checked there giving the same Euler angle of Yaw 90 degrees I have two completely different Quaternions in UE vs BabylonJS. For ref:

```auto
    UE - X=0 Y=-0 Z=0.7 W=0.7
    BabylonJS - X=0 Y= 0.85 Z= 0 W=0.52

```

Unreal Has Z-axis as UP vector whereas Babylon has Y-axis for UP vector, is there some way to get the same result as the UE Quaternion?

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 23, 2019, 7:21am UTC](https://forum.babylonjs.com/t/rotating-a-vector-using-quaternion/6521/2 "2019-10-23T07:21:06Z")

</div>

Hi @sorab2142

FromEulerToAngles uses angles in Radians. To convert from Degres to Radians, you can use BABYLON.Tools.ToRadians.

```auto
var quaternion1 = BABYLON.Quaternion.FromEulerAngles(0, BABYLON.Tools.ToRadians(90) , 0); 

```

---

<div class="post-metadata">

**Author:** ![sorab2142](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sorab2142/32/4678_2.png) [@sorab2142](https://forum.babylonjs.com/u/sorab2142)\
**Post date:** [October 23, 2019, 7:30am UTC](https://forum.babylonjs.com/t/rotating-a-vector-using-quaternion/6521/3 "2019-10-23T07:30:31Z")

</div>

Thank you.
