LINUX.ORG.RU

Cairo. Как сделать заливку по множеству незакрытых подконтуров.


0

1

Суть такова. Есть замкнутый контур, но для cairo он выглядит как несколько незамкнутых подконтуров(ну рисовался как move_to line_to, в итоге должно получиться один или несколько замкнутых контуров, но для cairo это просто набор отрезков-подконтуров, незакрытых). Как его залить? Есть ли какой-нибудь способ заливки, при котором заливается все, до столкновения с контуром, ну как при обычной заливке в графических редакторах? Рисовать контур по другому не получается.


Ответ на: комментарий от newfag

КО- сделай замкнутый контур заранее. напиши прослойку которая твои вызовы перетранслирует.

т.е.

my_move_to(point, newcontour) 
{
    if(newcontour)
    {
       if(prevcountour){close_contour();fill();}
       move_to(point);
       prevcontour=true;
    }else{
       if(dist(prevpoint, point)>threshold){
          line_to(point);
          prevpoint=point;
       }
    }
}

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

newcountour можешь получать из близости с начальной точкой.

но вообще стоит в этом месте сесть и обдумать, как сделать правильно. зарефакторь отрисовку контура.

ckotinko ☆☆☆
()

Можно забрать конечный path и траснформировать его нужным образом.

arturpub ★★
()

Спасибо всем за советы, теперь есть с чем разбираться, а то я вообще в тупике был.

newfag
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.