# How to applyQuaternion to a cartesian3 in Cesium

1. A concise explanation of the problem you're experiencing.

ThreeJS has an applyQuaternion on a vector to achieve a rotation of the vector. So a circle can be created for example by rotating the unit vector around an axis with vector.applyQuaternion()

Is there an way to do this in Cesium with Cartesian3 and Quaternion?

2. A minimal code example. If you've found a bug, this helps us reproduce and repair it.

In threeJS:
step is a quaternion defined like this:
step.setFromAxisAngle(new Three.Vector3(0, 1, 0),

for the number of steps around the circle:
vector.applyQuaternion(step);

3. Context. Why do you need to do this? We might know a better way to accomplish your goal.

I want to collect the vertices of a circle for example.
I'd like to use quaternions if possible for flexibility.

4. The Cesium version you're using, your operating system and browser.
"cesium": "1.48.0", windows 10, Version 74.0.3729.131 (Official Build) (64-bit)

Looking through the source, it looks like the common approach to doing this is to first create a Matrix3 out of the quaternion, then multiply that matrix by the vector:

https://github.com/AnalyticalGraphicsInc/cesium/blob/3749c7049bd9392bec840bdcd53a797b705224ea/Source/Core/CoplanarPolygonGeometry.js#L87-L90