Я использую FLTK для создания графического интерфейса, и мне нужно нарисовать на экране несколько полигонов (фигур).FLTK заполненный многоугольник
Из их документации fl_complex_polygon:
Start and end drawing a convex filled polygon.
Проблема? Полигон не заполнен, но отображается только штрих. Как сделать полигон заполненной фигурой?
Мой код выглядит следующим образом:
fl_color(FL_RED);
fl_begin_complex_polygon();
fl_line(mX,mY, x, y);
....
fl_line(mX,mY, x, y);
fl_end_complex_polygon();
Другой связанный с этим вопрос: Как я могу перерисовывать FL_BOX
? Должен ли я рисовать пустой (фоновый) прямоугольник над ним или есть какая-то функция FL_BOX::clear()
?
Спасибо, полигон работает. Если я использую this-> damage(), он будет рисовать только то, что у меня есть внутри моей функции, а не ярлык или другой по умолчанию прямоугольник. Невозможно также инициировать перерисовку Fl_Box, например, рисовать метки. Если я добавлю 'Fl_Box :: draw()' до или после повреждения, то рисунки будут стекаться. – Cristy
Урон просто устанавливает флаг. Он будет только перерисовываться в петле перерисовывания. То есть остановить мерцание. Если вы нажмете ничью, вы можете немного мерцать. Являются ли метки, которые вы хотите перерисовать, принадлежать Fl_Box? Если они этого не сделают, вам нужно установить повреждение родителя меток. – cup
Хорошо, вот как я это сделал: я использовал 'Fl_Box :: draw()'. Проблема заключалась в том, что стиль коробки был пустым фоном, поэтому в следующий раз, когда он был нарисован, не было ничего, чтобы покрыть ширину старых чертежей. Исправлено было установить стиль окна. http://www.fltk.org/doc-1.1/common.html#boxtypes – Cristy