How to get CircleGeometry boundary points

Hello.
I can get circle shape points(where yellow arrows end/point to)

!!! But I can't get circle geometry boundary points(yellow arrows radius/length is less than red circle radius) !!!

Just run my code in Cesium Demo Sandcastle to see the problem:

Please help

Hello,

Computing a circle on a 3D globe is surprisingly complicated. Here’s the function we use to compute our ellipses: EllipseGeometryLibrary.computeEllipsePositions
I’ve modified your example so that it uses that function:

var viewer = new Cesium.Viewer(‘cesiumContainer’);
var scene = viewer.scene;

var redCircleCenter = Cesium.Cartesian3.fromDegrees(-95.0, 43.0);
var redCircleRadius = 250000.0;

var circleGeometry = new Cesium.CircleGeometry({
center : redCircleCenter,
radius : redCircleRadius
});

var redCircleInstance = new Cesium.GeometryInstance({
geometry : circleGeometry,
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1.0, 0.0, 0.0, 0.5))
}
});

scene.primitives.add(new Cesium.Primitive({
geometryInstances: [redCircleInstance],
appearance: new Cesium.PerInstanceColorAppearance({‘flat’: true})
}));

var r = Cesium.EllipseGeometryLibrary.computeEllipsePositions({
semiMajorAxis: redCircleRadius,
semiMinorAxis: redCircleRadius,
rotation: 0,
center: redCircleCenter,
granularity : 0.02 // make this number larger to get fewer positions
}, false, true);

var positions = r.outerPositions;
for (var i = 0; i < positions.length; i+=3) {
viewer.entities.add({
polyline: {
‘positions’: [redCircleCenter, new Cesium.Cartesian3(positions[i], positions[i+1], positions[i+2])],
‘width’: 10,
‘material’: new Cesium.PolylineArrowMaterialProperty(Cesium.Color.YELLOW)
}
});
}

``

It seems I’ve found a bug that we’re missing two of the positions though… I’ll look into fixing that.

Hope this helps,

Hannah

It helped me so much

Thank you very much Hannah