# Cesium Primitive rotate

**URL:** https://community.cesium.com/t/cesium-primitive-rotate/4475
**Category:** CesiumJS
**Created:** [August 8, 2016, 2:28pm UTC](https://community.cesium.com/t/cesium-primitive-rotate/4475 "2016-08-08T14:28:30Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![antonsh930](https://avatars.discourse-cdn.com/v4/letter/a/74df32/32.png) [@antonsh930](https://community.cesium.com/u/antonsh930)
#### Post date: [August 8, 2016, 2:28pm UTC](https://community.cesium.com/t/cesium-primitive-rotate/4475/1 "2016-08-08T14:28:30Z")

</div>

Hello! I had a Ellipsoid Primitive. After initialization, I want to rotate it. How can I do that? Thank you in advance.

PS I am use Cesium.EllipsoidGeometry.

---

<div class="post-metadata">

### Author: ![hannah](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/hannah/32/4509_2.png) [@hannah](https://community.cesium.com/u/hannah)
#### Post date: [August 8, 2016, 3:07pm UTC](https://community.cesium.com/t/cesium-primitive-rotate/4475/2 "2016-08-08T15:07:01Z")

</div>

Hello,

Here is an example I wrote a while ago for rotating a CylinderGeometry. You should be able to use the same method for rotating an EllipsoidGeometry:

```
var viewer = new Cesium.CesiumWidget('cesiumContainer');
var scene = viewer.scene;
var primitives = scene.primitives;
var ellipsoid = viewer.scene.globe.ellipsoid;

var length = 400000.0;
var positionEllipsoid = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-105.0, 40.0));

//Create Geometry
var coneGeometry = new Cesium.CylinderGeometry({
    length: length,
    topRadius: 0.0,
    bottomRadius: 200000.0,
    vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
});

//Create Geometry Instance
var coneGeometryInstance = new Cesium.GeometryInstance({
    id: 'RedCone',
    geometry: coneGeometry,
    attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
    }
});

//Add geometry to scene
var primitive;
primitives.add(primitive = new Cesium.Primitive({

    geometryInstances: coneGeometryInstance,
    appearance: new Cesium.PerInstanceColorAppearance({
        closed: true,
        translucent: false
    })
}));

var counter = 90;
setInterval(function () {
   
    if (counter >= 360) {
        counter = 0;
    }
    var angleRad = 3.14 * counter / 180;
    var rotMatrix = new Cesium.Matrix3.fromRotationY(angleRad);
    var modelMatrix = Cesium.Matrix4.multiply(
    Cesium.Transforms.eastNorthUpToFixedFrame(positionEllipsoid),
    Cesium.Matrix4.fromRotationTranslation(rotMatrix, new Cesium.Cartesian3(0.0, 0.0, length * 0.5)),
    new Cesium.Matrix4());
    primitive.modelMatrix = modelMatrix;

    counter += 5;
   
}, 100);

```

``

Best,

Hannah
