C画图函数
- 格式:doc
- 大小:65.50 KB
- 文档页数:9
C语⾔图形开发函数graphics 函数名: fillellipse功能: 画出并填充⼀椭圆⽤法: void far fillellipse(int x, int y, int xradius, int yradius); 程序例: #include#includeint main(void){int gdriver = DETECT, gmode;int xcenter, ycenter, i;initgraph(&gdriver,&gmode,"");xcenter = getmaxx() / 2;ycenter = getmaxy() / 2;for (i=0; i<13; i++){setfillstyle(i,WHITE);fillellipse(xcenter,ycenter,100,50);getch();}closegraph();return 0;}Graphics 类.NET Framework 类库Graphics 类封装⼀个GDI+ 绘图图⾯。
⽆法继承此类。
命名空间:System.Drawing程序集:System.Drawing(在system.drawing.dll 中)语法Visual Basic(声明)Public NotInheritable Class GraphicsInherits MarshalByRefObjectImplements IDeviceContext, IDisposableVisual Basic(⽤法)Dim instance As GraphicsC#public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposableC++public ref class Graphics sealed : public MarshalByRefObject, IDeviceContext, IDisposableJ#public final class Graphics extends MarshalByRefObject implements IDeviceContext, IDisposableJScriptpublic final class Graphics extends MarshalByRefObject implements IDeviceContext, IDisposable备注Graphics类提供将对象绘制到显⽰设备的⽅法。
c语言circle画圆函数C语言是一种广泛应用于计算机编程领域的高级编程语言,它具有简单易学、高效实用等特点。
在C语言中,我们可以使用circle画圆函数来绘制圆形图形。
下面,我将详细介绍如何使用C语言circle画圆函数来实现圆形图形的绘制。
首先,我们需要了解C语言circle画圆函数的基本语法。
在C语言中,circle画圆函数的语法格式如下:circle(x, y, r);其中,x和y分别表示圆心的横坐标和纵坐标,r表示圆的半径。
通过调用circle函数,我们可以在屏幕上绘制出一个圆形图形。
接下来,我们可以通过一个简单的例子来演示如何使用C语言circle画圆函数来绘制圆形图形。
具体代码如下:#include <graphics.h>int main(){int gd = DETECT, gm;initgraph(&gd, &gm, "");circle(200, 200, 100);getch();closegraph();return 0;}在上述代码中,我们首先使用了graphics.h头文件中的initgraph函数来初始化图形界面。
然后,我们调用circle函数来绘制一个圆心坐标为(200, 200),半径为100的圆形图形。
最后,我们使用getch函数来等待用户按下任意键,然后使用closegraph函数来关闭图形界面。
通过上述例子,我们可以看到,使用C语言circle画圆函数来绘制圆形图形非常简单。
只需要传入圆心坐标和半径等参数即可。
同时,我们还可以通过调整圆心坐标和半径等参数来绘制不同大小和位置的圆形图形。
总之,C语言circle画圆函数是一种非常实用的绘图函数,它可以帮助我们快速绘制出各种形状的圆形图形。
如果您正在学习C语言编程,那么我强烈建议您学习和掌握这个函数,它将会对您的编程学习和实践产生非常大的帮助。
C语言图形编程一、字符屏幕一、屏幕操作函数1. clrscr()清除字符窗口函数2. window()字符窗口函数3. gotoxy()光标定位函数4. clreol() 清除光标行尾字符函数5. insline() 插入空行函数6. delline() 删除一行函数7. gettext() 拷进文字函数8. puttext() 拷出文字函数9. movetext() 移动文字函数二、字符属性函数10. textmode() 文本模式函数11. highvideo()高亮度函数12. lowvideo() 低亮度函数13. normvideo(void);14. textcolor() 文本颜色函数15. textattr() 文本属性函数16.textbackground() 文本背景函数三、屏显状态函数17. wherex() 光标处x坐标函数18. wherey() 光标处y坐标函数19. gettextinfo() 获取文本窗口信息函数在Borland C++里面提供了字符屏幕和图形函数。
字符屏幕的核心是窗口(Window),它是屏幕的活动部分,字符输出或显示在活动窗口中进行。
窗口在缺省时,就是整个屏幕。
窗口可以根据需要指定其大小。
同样,对图形函数的操作,也提供了(Viewport)。
也就是说图形函数的操作都是在视口上进行。
图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。
窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。
视口是在图形屏幕状态下的概念,文本与图形都可以在视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。
然而现在,其含义拓宽为指图形显示器上的最小可访问点)。
字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。
有一点须指出:字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。
C语言画图函数与图形有关的函数GRAPHICS.H 库文件bar【功能】画出一条栏目。
【原型】void far bar(int left,int top,int right,int bottom)【位置】graphics.hgraphics.h【参见】bar3d,setfillstyle,rectanglebar3d【功能】画出一条3-D栏目。
【原型】void far bar3d(int left,int top,int right,int bottom,int depth,int topflag) 【位置】graphics.h【参见】barcircle【功能】以(x,y)为圆心按照指定的半径画出一个圆。
【原型】void far circle(int x,int y,int radius)【位置】graphics.h【参见】arccleardevice【功能】清除图形画面。
【原型】void far cleardevice(void)【位置】graphics.h【参见】clearviewportclearviewport【功能】清除当前可视区域。
【原型】clearviewport(void)【位置】graphics.h【参见】setviewport,cleardeviceclosegraph【功能】关闭图形系统。
【原型】void far closegraph(void)【位置】graphics.h【参见】initgraphdetecgraph【功能】通过检查硬件确定使用的图形驱动程序和模式。
【原型】void far detectgraph(int far *graphdriver,int far *graphmode)【位置】graphics.h【参见】initgraph,graphresultdrawpoly【功能】画出一个多边形的轮廓。
【原型】void far drawpoly(int numpoints,int far polypoints[])【位置】graphics.h【说明】polypoints中包括一共numpoints对数值。
C语言图像处理函数大全,完整版∙∙1.图像平移图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。
假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 +dx, y0+dy),右下角坐标为(x1+dx, y1+dy)。
坐标平移变换公式为:x′ = x +dxy′ = y +dy在屏幕上实现图像的移动分为四个步骤:⑴保存原图像到缓冲区。
⑵擦除原图像。
⑶计算平移后的新坐标。
⑷在新的坐标位置重新显示原图像。
其中,擦除原图像的方法与图形变换中擦除原图形的方法一致,在实现中仍采用XOR异或方式画图擦除原图像。
对于新坐标值的计算还需要考虑边界情况,不要在图像平移后超出允许的屏幕范围。
此外,如果采用C函数getimage()和putimage()来保存和恢复图像,则图像的大小不能超过64K。
2.图像颠倒图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。
分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n-1行交换……,依此类推,从而实现了图像的颠倒。
只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。
基本步骤如下:(1) 用getimage()保存原图像,并擦除原图像。
(2) 计算图像的高度,即行数height;计算图像宽度width;计算保存一行图像信息height = bottom -top +1;width = right -left +1;linebytes = (width +7) /8 *4;(3)利用行交换缓冲区linebuf在图像内存缓冲区中进行信息交换,即把第一行与最末行交换,第2行与第n-1行交换……,依此类推,直至全部交换完毕。
(4)把交换后的图像缓冲区内容重新显示在屏幕上。
3.图像镜像变换镜像变换是指将指定区域的图像左右翻转地显示在屏幕。
c语言画图基本函数基本图形函数包括画点,线以及其它一些基本图形的函数。
本节对这些函数作一全面的介绍。
1、画点I. 画点函数 void far putpixel(int x, int y, int color);该函数表示有指定的象元画一个按color 所确定颜色的点。
对于颜色color的值可从表3中获得而对x, y是指图形象元的坐标。
在图形模式下,是按象元来定义坐标的。
对VGA适配器,它的最高分辨率为640x480,其中640为整个屏幕从左到右所有象元的个数,480为整个屏幕从上到下所有象元的个数。
屏幕的左上角坐标为(0,0),右下角坐标为(639, 479),水平方向从左到右为x 轴正向,垂直方向从上到下为y轴正向。
TURBO C的图形函数都是相对于图形屏幕坐标,即象元来说的。
关于点的另外一个函数是: int far getpixel(int x, int y); 它获得当前点(x, y)的颜色值。
II、有关坐标位置的函数int far getmaxx(void);返回x轴的最大值。
int far getmaxy(void); 返回y轴的最大值。
int far getx(void); 返回游标在x轴的位置。
void far gety(void); 返回游标有y轴的位置。
void far moveto(int x, int y); 移动游标到(x, y)点,不是画点,在移动过程中亦画点。
void far moverel(int dx, int dy); 移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点。
2、画线I. 画线函数TURBO C提供了一系列画线函数,下面分别叙述:void far line(int x0, int y0, int x1, int y1); 画一条从点(x0, y0)到(x1, y1)的直线。
void far lineto(int x, int y); 画一作从现行游标到点(x, y)的直线。
C语言图像处理函数大全,完整版∙∙1.图像平移图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。
假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 +dx, y0+dy),右下角坐标为(x1+dx, y1+dy)。
坐标平移变换公式为:x′ = x +dxy′ = y +dy在屏幕上实现图像的移动分为四个步骤:⑴保存原图像到缓冲区。
⑵擦除原图像。
⑶计算平移后的新坐标。
⑷在新的坐标位置重新显示原图像。
其中,擦除原图像的方法与图形变换中擦除原图形的方法一致,在实现中仍采用XOR异或方式画图擦除原图像。
对于新坐标值的计算还需要考虑边界情况,不要在图像平移后超出允许的屏幕范围。
此外,如果采用C函数getimage()和putimage()来保存和恢复图像,则图像的大小不能超过64K。
2.图像颠倒图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。
分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n-1行交换……,依此类推,从而实现了图像的颠倒。
只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。
基本步骤如下:(1) 用getimage()保存原图像,并擦除原图像。
(2) 计算图像的高度,即行数height;计算图像宽度width;计算保存一行图像信息height = bottom -top +1;width = right -left +1;linebytes = (width +7) /8 *4;(3)利用行交换缓冲区linebuf在图像内存缓冲区中进行信息交换,即把第一行与最末行交换,第2行与第n-1行交换……,依此类推,直至全部交换完毕。
(4)把交换后的图像缓冲区内容重新显示在屏幕上。
3.图像镜像变换镜像变换是指将指定区域的图像左右翻转地显示在屏幕。
四、图形和图像函数(一) 像素函数56. putpiel() 画像素点函数57. getpixel()返回像素色函数(二) 直线和线型函数58. line() 画线函数59. lineto() 画线函数60. linerel() 相对画线函数61. setlinestyle() 设置线型函数62. getlinesettings() 获取线型设置函数63. setwritemode() 设置画线模式函数(三)、多边形函数64. rectangle() 画矩形函数65. bar() 画条函数66. bar3d() 画条块函数67. drawpoly() 画多边形函数(四)、圆、弧和曲线函数68. getaspectratio()获取纵横比函数69. circle()画圆函数70. arc() 画圆弧函数71. ellipse()画椭圆弧函数72. fillellipse() 画椭圆区函数73. pieslice() 画扇区函数74. sector() 画椭圆扇区函数75. getarccoords()获取圆弧坐标函数(五)、填充函数76. setfillstyle() 设置填充图样和颜色函数77. setfillpattern() 设置用户图样函数78. floodfill() 填充闭域函数79. fillpoly() 填充多边形函数80. getfillsettings() 获取填充设置函数81. getfillpattern() 获取用户图样设置函数(六)、图像函数82. imagesize() 图像存储大小函数83. getimage() 保存图像函数84. putimage() 输出图像函数四、图形和图像函数对许多图形应用程序,直线和曲线是非常有用的。
但对有些图形只能靠操作单个像素才能画出。
当然如果没有画像素的功能,就无法操作直线和曲线的函数。
而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。
(一) 像素函数56. putpixel() 画像素点函数功能:函数putpixel() 在图形模式下屏幕上画一个像素点。
用法:函数调用方式为void putpixel(int x,int y,int color);说明:参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。
此函数相应的头文件是graphics.h返回值:无例:在屏幕上(6,8)处画一个红色像素点:putpixel(6,8,RED);57. getpixel()返回像素色函数功能:函数getpixel()返回像素点颜色值。
用法:该函数调用方式为int getpixel(int x,int y);说明:参数x,y为像素点坐标。
函数的返回值可以不反映实际彩色值,这取决于调色板的设置情况(参见setpalette()函数)。
这个函数相应的头文件为graphics.h返回值:返回一个像素点色彩值。
例:把屏幕上(8,6)点的像素颜色值赋给变量color。
color=getpixel(8,6);(二) 直线和线型函数有三个画直线的函数,即line(),lineto(),linerel()。
这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。
有两种线宽及几种线型可供选择,也可以自己定义线图样。
下面分别介绍直线和线型函数。
58. line() 画线函数功能:函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。
用法:该函数调用方式为void line(int startx,int starty,int endx,int endy);说明:参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。
此函数相应的头文件为graphics.h返回值:无例:见函数60.linerel()中的实例。
59. lineto() 画线函数功能:函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。
用法:此函数调用方式为void lineto(int x,int y);说明:参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。
该函数对应的头文件为graphics.h返回值:无例:见函数60.linerel()中的实例。
60.linerel() 相对画线函数功能:函数linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。
用法:这个函数调用方式为void linerel(int dx,int dy);说明:参数dx,dy分别是水平偏移距离和垂直偏移距离。
函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。
返回值:无例:下面的程序为画线函数调用实例:#include<graphics.h>void main(){int driver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,"");setcolor(15);line(66,66,88,88);lineto(100,100);linerel(36,64);getch();restorecrtmode();}61. setlinestyle() 设置线型函数功能:setlinestyle() 为画线函数设置当前线型,包括线型、线图样和线宽。
用法:setlinestyle() 函数调用方式为void setlinestyle(int stly,unsigned pattern,int width);说明:参数style为线型取值,也可以用相应名称表示,如表1-10中所示。
参数pattern用于自定义线图样,它是16位(bit)字,只有当style=USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0xFFFF,则画实线;pattern=0x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0xFF00和0xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。
参数wigth用来设定线宽,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。
若用非法参数调用setlinestyle()函数,那么graphresult()会返回错误代码,并且当前线型继续有效。
Turbo C提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。
表1-10 线型-----------------------------------------------------名称取值含义-----------------------------------------------------SOLID_LINE 0 实线DOTTED_LINE 1 点线CNTER_LINE 2 中心线DASHED_LINE 3 虚线USERBIT_LINE 4 用户自定义线型-----------------------------------------------------表1-11 线宽-----------------------------------------------------------名称取值说明-----------------------------------------------------------NORM_WIDTH(常宽) 1 一个像素宽(缺省值)THICK_WIDTH(加宽) 3 三个像素宽-----------------------------------------------------------这个函数的头文件是graphics.h返回值:无例:下面的程序显示了BC中所提供的线型图样:#include<graphics.h>void main(){int driver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,"");for(i=0;i<4;i++){setlinestyle(i,0,1);line(i*50,200,i*50+60,200)}getch();restorecrtmode();}62. getlinesettings() 获取线型设置函数功能:函数getlinesettings() 用当前设置的线型、线图样和线宽填写linesettingstype型结构。
用法:函数调用方式为void getlinesettings(struct linesettingstype *info);说明:此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。
linesettingstype型结构定义如下:struct linesettingstype {int linestyle;unsigned upattern;int thickness;};其中linestyle用于存放线型,线型值为表1-10中的各值之一。
upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。
thickness为线宽值存放的变量,可参见表1-11。
getlinesettings()函数对应的头文件为graphics.h返回值:返回的线型设置存放在info指向的结构中。
例:把当前线型的设置写入info结构:struct linesettingstype info;getlinesettings(&info);63.setwritemode() 设置画线模式函数功能:函数setwritemode() 设置画线模式用法:函数调用方式为void setwritemode()(int mode);说明:参数mode只有两个取值0和1,若mode为0,则新画的线将复盖屏幕上原有的图形,此为缺省画线输出模式。
如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。