ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 3.9复杂图形函数 复杂的画图函数利用2-D线性转换能让你画出任意图形。这个功能与Adobe? PostScript 语言实现的功能很相似,在X和Win32上,在画线段之前所有的转换顶点都是用整数表示,这就限制了画图的精确性。如果要画比较精确的图形,最好用OpenGL来画。 ``` void fl_push_matrix() void fl_pop_matrix() ``` 保存和恢复当前的转换,堆栈的最大深度为4 ``` void fl_scale(float x, float y) void fl_scale(float x) void fl_translate(float x, float y) void fl_rotate(float d) void fl_mult_matrix(float a, float b, float c, float d, float x, float y) ``` 在当前的转换基础上连接另外一个转换。旋转角度是度数不是弧度,逆时针旋转。 ``` void fl_begin_line() void fl_end_line() ``` 开始和结束画线 ``` void fl_begin_loop() void fl_end_loop() ``` 开始和结束画一系列封闭的线 ``` void fl_begin_polygon() void fl_end_polygon() ``` 开始和结束画多边形并填充 ``` void fl_begin_complex_polygon() void fl_gap() void fl_end_complex_polygon() ``` 开始和结束画一个复杂的多边形并填充。这个多边形可以是凹凸不同的,不连贯的,甚至中间有空心的。调用fl_gap()分开路径。不必也是有害的如果在第一个顶点之前或最后一个顶点之后调用fl_gap()函数,在一行中多次调用也是不行的。 Fl_gap()只能用在fl_begin_complex_polygon()和fl_end_complex_polygon()之间。画多边形的轮廓,使用fl_begin_loop并用fl_end_loop和fl_begin_loop代替fl_gap(); ``` void fl_vertex(float x, float y) ``` 在当前路径中增加一个顶点 ``` void fl_curve(float x, float y, float x1, float y1, float x2, float y2, float x3, float y3) ``` 在路径中增加一系列的点画Bezier 曲线。该曲线的末端是x,y和x3,y3。 ``` void fl_arc(float x, float y, float r, float start, float end) ``` 增加一系列的点在当前圆环的弧线上。在调用fl_arc()之前应用scale和rotate 可以得到椭圆的路径。X,y是圆的中心,r是半径。Fl_arc()从start角度画弧直到end,按逆时针旋转。如果end大于start则它是按照顺时针转 ``` void fl_circle(float x, float y, float r) ``` fl_circle等于fl_arc(…,0,360),但是更快,如果你在画多边形的时候用到 圆,则必须用fl_arc(). 文本的画法 所有的文本都字体都是适用当前字体。现在还不明确在转换情况下,位置或字符是否会改变 ``` void fl_draw(const char *, int x, int y) void fl_draw(const char *, int n, int x, int y) ``` 在窗口中画出字符串,位置是靠左,接近底线 ``` void fl_draw(const char *, int x, int y, int w, int h, Fl_Align align, Fl_Image *img = 0, int draw_symbols = 1) void fl_measure(const char *, int &w, int &h, int draw_symbols = 1) int fl_height() ``` 得到当前字体的高度 ``` int fl_descent() float fl_width(const char*) float fl_width(const char*,int n) float fl_width(uchar) const char *fl_shortcut_label(ulong) ``` 返回按钮或菜单的快捷键字符串