Я создал следующую функцию для рисования прямоугольников в Каире с закругленными прямоугольниками
void square (Context cr, int x, int y, int sizex, int sizey, int radius)
{
cr.move_to (x + radius, y);
cr.arc (x + sizex - radius, y + radius, radius, 1.5 * PI, 0);
cr.arc (x + sizex - radius, y + sizey - radius, radius, 0, 0.5 * PI);
cr.arc (x + radius, y + sizey - radius, radius, 0.5 * PI, PI);
cr.arc (x + radius, y + radius, radius, PI, 1.5 * PI);
}
Это очень похожий на C способ сделать это.Я бы предпочел сделать это более объектно-ориентированным способом.Как реализация функции в качестве метода Cairo.Context.