Polygon update position

How to fix this jumping problem of the polygon without using callbackproperty?

// This is an example of using Cesium “Offline”, meaning disconnected from the
// external Internet. It must still be served from a local web server, but
// does not rely on any outside resources or services. For more info, see:
// Offline Guide · CesiumGS/cesium Wiki · GitHub
var viewer = new Cesium.Viewer(“cesiumContainer”, {
imageryProvider: new Cesium.TileMapServiceImageryProvider({
url: Cesium.buildModuleUrl(“Assets/Textures/NaturalEarthII”),
}),
baseLayerPicker: false,
geocoder: false,
});
var i = 0;
var b = [{
lon: 4.25832182,
lat: 51.28233363,
alt: 0
}, {
lon: 4.25824362,
lat: 51.2823683,
alt: 0
}]

var c = [
[4.25827565, 51.28237055, 4.25839278, 51.28231875, 4.258368, 51.28229672, 4.25825087, 51.28234852, 4.25827565, 51.28237055],
[4.25819675, 51.28240487, 4.25831485, 51.28235395, 4.2582905, 51.28233173, 4.25817238, 51.28238265, 4.25819675, 51.28240487]]

var entity = viewer.entities.add({
model: {
uri: “…/SampleData/models/GroundVehicle/GroundVehicle.glb”,
},
position: new Cesium.Cartesian3.fromDegrees(b[i].lon, b[i].lat, b[i].alt)
})

var polygon = viewer.entities.add({
height: 0,
polygon: {
hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray(c[i])),
material: Cesium.Color.RED,
extrudedHeight: 2.0,
}
})

setInterval(function() {
if (i < b.length) {
entity.position = new Cesium.Cartesian3.fromDegrees(b[i].lon, b[i].lat, b[i].alt)
polygon.polygon.hierarchy = new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray(c[i]));

    i += 1;
} else {
    i = 0
}

}, 1000);

viewer.zoomTo(viewer.entities);