(2)C语言常用图形函数

计算机图形学 专栏收录该内容
28 篇文章 8 订阅

屏幕颜色的设置和清屏函数

① 设置背景色:void setbkcolor(int color);

② 设置前景色:void setcolor(int color); 


③ 清除图形屏幕内容,使用清屏函数,其调用格式如下:
     void cleardevice( );  
  注:清除前景图形,不清除背景。 

基本图形函数

① 画点函数:
  将点(x, y)置成color色:void putpixel(int x, int y, int color);
  获得当前点(x, y)的颜色值:int getpixel(int x, int y); 
  例:使(20, 50)的像素点置成红色输出。
     putpixel(20, 50, RED);

② 有关坐标位置的函数:
  返回x轴的最大值:int getmaxx( ); 
  返回y轴的最大值:int getmaxy( ); 
  返回游标在x轴的位置:int getx( );
  返回游标在y轴的位置:int gety( );
  移动游标到(x, y)点:void moveto(int x, int y);
  将游标从现行位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点:void moverel(int dx, int dy);

③ 画线函数:
  画一条从点(x0, y0)到(x1, y1)的直线:
   void  line(int x0, int y0, int x1, int y1);  
  画一条从现行游标到点(x, y)的直线:
    void  lineto(int x, int y);  
  画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线:void  linerel(int dx, int dy);

④ 画圆弧类函数:
  以(x, y)为圆心,radius为半径,画一个圆:
    void  circle(int x, int y, int radius);  
  以(x, y)为圆心,radius为半径,从stangle开始到endangle结束(用度表示),画一段圆弧线,逆时针方向:
    void  arc(int x, int y, int stangle, int endangle, int radius);  
  以(x, y)为中心,xradius、yradius为x轴和y轴半径,从角stangle开始,endangle结束,画一段椭圆线,

  当stangle=0,endangle=360时,画出一个完整的椭圆:

    void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); 

⑤ 画多边形类函数:
  以(x1, y1)为左上角,(x2, y2)为右下角,画一个矩形框:
    void rectangle(int x1, int y1, int x2, inty2); 
  画一个顶点数为numpoints,各顶点坐标由整型数组polypoints给出的多边形。polypoints必须至少有2倍顶点数   个元素。每个顶点坐标都定义为x、y,且x在前。当画一个封闭多边形时,numpoints的值取实际多边形的顶点数   +1,且数组polypoints中第一个和最后一个点的坐标相同:void drawpoly(int numpoints, int *polypoints);

设置线型和线宽

① 线型:C语言能够使用的线型如表所示。

  

② 线宽:C语言能够使用的线宽如表所示。

   

③ setlinestyle函数:
  功能:用于设置当前绘图所用的线型和宽度。
  原型:setlinestyle(int style, unsigned pattern, int width)
  参数style:用来指定所画直线的类型,取值见线型表,缺省为实线;
  参数width:用来指定所画直线的粗细,以像素为单位,取值见线宽表,缺省值为1个像素宽。

  参数pattern:该参数在用户自定义线型时使用。如果使用线型表中前4种系统预定义的线型,则该参数取值0。     pattern是一个16位二进制数,每一位代表一个像素,该位为1时显示,为0时不显示。

   例如:希望设置的线型为前12位不显示,后4位显示。

      

    此时,pattern值为15,调用方法为setlinestyle(4, 15, 1)。

填充图形函数

① setfillstyle函数:
  功能:为各种图形函数设置填充模式和颜色。
  原型:setfillstyle(int  pattern, int  color);
  参数:color指定填充所用的颜色;pattern用于指定填充模式,取值见下表。

  

② floodfill函数
  功能:用于对一指定的封闭区域进行填充,其填充模式和颜色由setfillstyle函数指定。
  原型:floodfill(int  x, int  y, int  border);
  参数:x、y指位于填充区域内任意一点的坐标,该点作为填充的起始点;border为填充区域的边界颜色。
   注意:使用该函数必须保证要填充的区域是完全封闭的,否则,该形状外面的区域也将被填充。

③ setfillpattern函数
  功能:实现用户自定义的填充模式。
  原型:setfillpattern(char *pattern, int color);
  参数:color指定用户自定义填充模式的颜色;pattern指向8个字节,一个字节对应8个像素,8*8个像素,每一位       有亮暗两种(亮为1,暗为0),通过一个指向8个字节的指针判断。

图形存取处理函数

 测试要保存左上角为(x1, y1),右下角为(x2, y2)的图形屏幕区域内的全部内容需多少个字节:
    unsigned imagesize(int x1, int y1, int x2, int y2); 
 将左上角为(x1, y1),右下角为(x2, y2)的图形屏幕区域内的图像保存在内存中,指针为mapbuf:
    void getimage(int x1, int y1, int x2, int y2, void  *mapbuf);
 将图像输出到左上角为点(x, y)的位置上,其中参数op规定如何释放内存中的图像,具体值如表:
    void putimage(int x, int y, void * mapbuf, int op); 

  

文本输出函数

在现行位置输出字符串指针textstring所指的文本:
  void outtext(char *textstring);
在规定的(x, y)位置输出字符串指针textstring所指的文本,其中x和y为象元坐标:
  void outtextxy(int x, int y, char *textstring);

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

zl908760230

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值