问题描述
我正在尝试使用 FLTK(半径增加和减少的圆)制作一个简单的动画。我设法编写了一个看似有效的简单程序,但动画闪烁。圆圈消失了几毫秒,然后又回来了。我已将 Fl_Window 类更改为 Fl_Double_Window,但这并没有解决这个问题。
class Painting : public Fl_Widget {
public:
Painting(int x,int y,int w,int h) : Fl_Widget(x,y,w,h,0) {}
private:
void draw()
{
static double inc = 0;
inc += 0.2;
double radius = 50 + 10*sin(inc);
fl_begin_polygon();
fl_arc(100,100,radius,360);
fl_end_polygon();
}
};
void redraw_cb(void *data)
{
Fl_Widget *w = (Fl_Widget*)data;
w->redraw();
Fl::repeat_timeout(0.01,redraw_cb,data);
}
int main(int argc,char **argv)
{
Fl_Double_Window *win = new Fl_Double_Window(1000,500,"hello");
Painting *painting = new Painting(0,1000,500);
Fl::add_timeout(1,painting);
Fl::visual(FL_DOUBLE|FL_INDEX);
win->resizable(painting);
win->end();
win->show();
return Fl::run();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)