Unexpected Rotation of Draw3dText

When I use the Draw3dText Method to place Text in a Circle, the Text is unexpectedly rotated.
Is there a solution?

brepObj.ClosestPoint(e.CurrentPoint, out closetPoint, out compIndex, out u, out v, 0, out vtNormal);
Plane circleonPlane = new Plane(e.CurrentPoint, vtNormal);
Point3d circleonText = e.CurrentPoint + vtNormal * circle / 2;

e.Display.Draw3dText(circle.ToString("F2"), Color.Black, circleonPlane, circle / 4, "Arial", true, false, TextHorizontalAlignment.Auto, TextVerticalAlignment.MiddleOfTop);

Looks like this happens because the Plane definition is not unique: a point and a normal does not uniquely identify how the X- and Y-axis of the plane are oriented.

Use this alternative, where the directions in the surface, obtained by evaluating the first derivatives in the surface, are used to constuct the plane.

if (_brep.ClosestPoint(e.CurrentPoint, out var cp, out var ci, out var u, out var v, 0, out var vNormal))
{
  if (ci.ComponentIndexType == ComponentIndexType.BrepFace)
  {
    _brep.Faces[ci.Index].Evaluate(u, v, 1, out var at, out Vector3d[] der);
    Plane circleOnPlane = new Plane(at, der[0], der[1]);


    e.Display.Draw3dText("Test", System.Drawing.Color.Black, circleOnPlane, 0.5, "Arial", true, false,
      TextHorizontalAlignment.Auto, TextVerticalAlignment.MiddleOfTop);
  }
}

@jack3 - Draw3dText requires an oriented plane.

– Dale