# rotate polygon around point

**URL:** <https://community.cesium.com/t/rotate-polygon-around-point/3782>\
**Category:** CesiumJS\
**Created:** [March 1, 2016, 12:25pm UTC](https://community.cesium.com/t/rotate-polygon-around-point/3782 "2016-03-01T12:25:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![11136](https://avatars.discourse-cdn.com/v4/letter/1/ce73a5/32.png) [@11136](https://community.cesium.com/u/11136)\
**Post date:** [March 1, 2016, 12:25pm UTC](https://community.cesium.com/t/rotate-polygon-around-point/3782/1 "2016-03-01T12:25:56Z")

</div>

Hey

Hello everyone

I’m trying to rotate a polygon around a point. How am I supposed to do this?

I’d love to help

Thank you

---

<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:** [March 1, 2016, 4:03pm UTC](https://community.cesium.com/t/rotate-polygon-around-point/3782/2 "2016-03-01T16:03:24Z")

</div>

Hello,

There isn’t anything built into Cesium to handle this directly, but you can calculate the positions of the rotated points using a quaternion.

Here is a code example:

var viewer = new Cesium.Viewer(‘cesiumContainer’);  
var positions = Cesium.Cartesian3.fromDegreesArray([-115.0, 37.0,  
-115.0, 32.0,  
-107.0, 33.0,  
-102.0, 31.0,  
-102.0, 35.0]);  
var pointPosition = Cesium.Cartesian3.fromDegrees(-108, 38);  
var quaternion = Cesium.Quaternion.fromAxisAngle(pointPosition, Cesium.Math.toRadians(1));  
var rotationMatrix = Cesium.Matrix3.fromQuaternion(quaternion);  
function getPositions(){  
for (var i = 0; i \< positions.length; i++) {  
positions[i] = Cesium.Matrix3.multiplyByVector(rotationMatrix, positions[i], positions[i]);  
}  
return positions;  
}

viewer.entities.add({  
polygon : {  
hierarchy : new Cesium.CallbackProperty(getPositions, false),  
material : Cesium.Color.RED  
}  
});

viewer.entities.add({  
position : pointPosition,  
point : {  
pixelSize : 10,  
color : Cesium.Color.YELLOW  
}  
});

``

Best,

Hannah

---

<div class="post-metadata">

**Author:** ![11136](https://avatars.discourse-cdn.com/v4/letter/1/ce73a5/32.png) [@11136](https://community.cesium.com/u/11136)\
**Post date:** [March 1, 2016, 5:39pm UTC](https://community.cesium.com/t/rotate-polygon-around-point/3782/3 "2016-03-01T17:39:00Z")

</div>

Thank you Hannah 🙂

‏בתאריך יום שלישי, 1 במרץ 2016, Hannah Pinkos [pinkos.hannah@gmail.com](mailto:pinkos.hannah@gmail.com) כתב:
