static void draw(Cairo.Context gr, int width, int height)
{
double xc = 0.5;
double yc = 0.5;
double radius = 0.4;
double angle1 = 45.0 * (M_PI / 180.0); /* angles are specified */
double angle2 = 180.0 * (M_PI / 180.0); /* in radians */
gr.Scale(width, height);
gr.LineWidth = 0.04;
gr.ArcNegative(xc, yc, radius, angle1, angle2);
gr.Stroke();
/* draw helping lines */
gr.Color = new Color(1, 0.2, 0.2, 0.6);
gr.Arc(xc, yc, 0.05, 0, 2 * M_PI);
gr.Fill();
gr.LineWidth = 0.03;
gr.Arc(xc, yc, radius, angle1, angle1);
gr.LineTo(new PointD(xc, yc));
gr.Arc(xc, yc, radius, angle2, angle2);
gr.LineTo(new PointD(xc, yc));
gr.Stroke();
}