C画图函数

合集下载

C语言图形开发函数graphics

C语言图形开发函数graphics

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语言图形处理函数及其应用

c语言图形处理函数及其应用
补充内容:
图形处理函数及其应用
主要内容:
一、图形初始化及应用设置函数 二、常用的作图函数 三、字符屏幕控制函数 四、图形处理函数应用
一、图形初始化及应用设置函数
1、使用#include “graphics.h” 2、初始化图形系统函数 void far initgraph(gdrive,gmode,gpath) int far *gdrive, *gmode, *gpath; gdrive:图形驱动器代号,gmode:图形模式代号, gpath: 图形驱动程序路径。 如:常用方式: int gdrive,gmode; gdrive=DETECT; initgraph(&gdrive,&gmode, “d:\\tc”); 3、擦除整个图形屏幕,并将cp(当前位置)移 到原点(0,0) void far cleardevice(void)
14、设置正文字形、显示方向、字符大小函数 void far settextstyle(font, direction, charsize) int font, direction, charsize; (1)font(字形)取值 0:8*8字形,1:3倍笔划字形, 2:小号笔划字形, 3:无衬线笔划字形, 4:黑体笔划字形。 (2)direction(显示方向)取值,0:自左向右,1:从 底向上。 (3)charsize(字符放大因子)取值 0:用户自定义, 1:8*8大小,2:16*16大小, ……。最大为10倍。 说明:该函数影响outtext( )和outtextxy( )两个函数。
浅青 浅品红
13、设置画线宽度和线型的函数 void far setlinestyle(linestyle, upattern, thickness) int linestyle, thickness; unsigned upattern; linestyle(线型)取值,0:实线,1:点,2:长短, 3:长虚线,4:自定义线型。 thickness(宽度)取值: 1、3。 upattern:当linestyle为4时起作用。 14、检测图象区域所含的字节数函数 unsigned far imagesize(left, top, right, bottom) int left, top, right, bottom; 返回值为区域内图象的字节数。 15、申请分配动态存储区函数(包含在stdlib.h中) void *malloc(unsigned int size) 返回存储区的首地址。若不成功,则返回NULL。

c语言circle画圆函数

c语言circle画圆函数

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语言图形编程函数大全

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语言画图函数

C语言画图函数

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对数值。

VC++画图函数

VC++画图函数
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
GetBkColor 取得指定设备场景当前的背景颜色
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
GetPath 取得对当前路径进行定义的一系列数据
GetPixel 在指定的设备场景中取得一个像素的RGB值
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
GetROP2 针对指定的设备场景,取得当前的绘图模式
GetStockObject 取得一个固有对象(Stock)
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
CreatePen 用指定的样式、宽度和颜色创建一个画笔
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
CreateSolidBrush 用纯色创建一个刷子
DeleteEnhMetaFile 删除指定的增强型图元文件
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件元文件
DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放

C语言图像处理函数大全

C语言图像处理函数大全

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语言图形编程(三、绘图函数-02)5

C语言图形编程(三、绘图函数-02)5
drawpoly()函数对应的头文件为grpahics.h
返回值: 无
例: 下面的程序画一个封闭星形图与一个不封闭星形图:
#include<graphics.h>
void main()
{
int driver,mode;
static int polypoints1[18]={100,100,110,120,100,130,120,125,140,140,130,120,
printf("aspect ratio: %f",aspectratio);
69. circle()画圆函数
功能: 函数circle()使用当前绘图色并以实线画一个完整的圆。
用法:该函数调用方式为void circle(int x,int y,int radius);
说明: 参数x,y为圆心坐标,radius为圆半径,用像素个素表示。注意,调用circle()函数画圆时不用当前线型。
不同于ellipse()函数,只用单个半径radius参数调用circle()函数,故屏显纵横比可以自动调节,以产生正确的显示图。
此函数对应的头文件为graphics.h
返回值: 无
例: 画六个同心圆,圆心在(100,100)。
#include<graphics.h>
void main()
为了保证几何图形基本按预计情况显示在屏幕上,用屏显的纵横比来计算和纠正不同硬件及显示卡产生的畸变。计算纵横比所需要的水平方向和垂直方向的比例系数可调用函数getaspectratio()获得。
68. getaspectratio()获取纵横比函数
功能: 函数getaspectratio()返回x方向和y方向的比例系数,用这两个整型值可计算某一特定屏显的纵横比。

c语言画图基本函数

c语言画图基本函数

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语言图像处理函数大全

C语言图像处理函数大全

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语言画图函数

c语言画图函数

(一) 像素函数putpixel() 画像素点函数功能:函数putpixel() 在图形模式下屏幕上画一个像素点。

用法:函数调用方式为void putpixel(int x,int y,int color); 说明:参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。

此函数相应的头文件是graphics.h 返回值:无例:在屏幕上(6,8)处画一个红色像素点:putpixel(6,8,RED);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为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。

有两种线宽及几种线型可供选择,也可以自己定义线图样。

下面分别介绍直线和线型函数。

line() 画线函数功能:函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。

用法:该函数调用方式为void line(int startx,int starty,int endx,int endy); 说明:参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。

C语言中的画图函数

C语言中的画图函数

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语言plot函数

c语言plot函数

c语言plot函数plot函数是C语言中常用的绘图函数之一,它能够通过给定的数据集合,将数据以图形的形式展示出来。

在C语言中,我们可以使用plot函数来绘制各种图形,例如折线图、散点图、柱状图等等。

本文将详细介绍plot函数的用法和一些常见的应用场景。

我们需要了解如何使用plot函数。

在C语言中,plot函数通常需要依赖第三方库来实现,比如使用gnuplot库。

我们可以通过在代码中引入gnuplot库,并且使用相关函数来绘制图形。

下面是一个简单的例子,展示了如何使用plot函数绘制一条简单的折线图。

```c#include <stdio.h>#include <stdlib.h>#include <gnuplot.h>int main(){gnuplot_ctrl *h;h = gnuplot_init();gnuplot_setstyle(h, "lines");gnuplot_plot_x(h, "sin(x)", "Sine function");sleep(2);gnuplot_close(h);return 0;}```在上面的例子中,我们首先初始化一个gnuplot控制器,然后设置绘图的样式为线条样式,接着使用gnuplot_plot_x函数来绘制sin(x)函数的图像,并且给图像添加了标题"Sine function"。

最后,我们使用gnuplot_close函数来关闭gnuplot控制器。

通过上面的例子,我们可以看到plot函数的基本用法。

我们可以通过设置不同的样式、添加不同的数据集合以及设置标题等来实现更加丰富多样的图形展示效果。

接下来,我们将介绍一些常见的plot 函数的应用场景。

plot函数可以用来展示数据的趋势变化。

比如我们可以使用plot函数来绘制某个指标随时间变化的折线图,从而直观地观察到指标的趋势。

画圆弧的函数 c

画圆弧的函数 c

画圆弧的函数 c
在C语言中,可以使用标准库函数`<>`中的`sin()`和`cos()`函数来计算角度的三角函数值,然后使用这些值来计算圆弧的坐标。

下面是一个简单的示例代码,演示如何使用C语言绘制一个圆弧:
<>
include <>
define PI
int main() {
int radius = 50; // 半径为50
int start_angle = 0; // 起始角度为0
int end_angle = 180; // 结束角度为180
int step = 10; // 步长为10
for (int i = start_angle; i <= end_angle; i += step) {
double x = radius cos(i PI / 180); // 计算x坐标
double y = radius sin(i PI / 180); // 计算y坐标
printf("(%f, %f)\n", x, y); // 输出坐标
}
return 0;
}
起始角度为0,结束角度为180,步长为10。

然后使用一个循环来计算每个角度的x和y坐标,并输出这些坐标。

需要注意的是,上面的代码只是一个简单的示例,实际上绘制圆弧还需要考虑更多的因素,例如圆的中心、起始点和结束点的位置、颜色等等。

如果需要绘制更复杂的图形,建议使用专门的图形库或绘图软件。

C语言曲线函数

C语言曲线函数

像素函数putpi‎x el() 画像素点函‎数getpi‎x el()返回像素色‎函数直线和线型‎函数line() 画线函数linet‎o() 画线函数liner‎e l() 相对画线函‎数setli‎n esty‎l e() 设置线型函‎数getli‎n eset‎t ings‎() 获取线型设‎置函数setwr‎i temo‎d e() 设置画线模‎式函数多边形函数‎recta‎n gle()画矩形函数‎bar() 画条函数bar3d‎() 画条块函数‎drawp‎o ly() 画多边形函‎数圆、弧和曲线函‎数getas‎p ectr‎a tio()获取纵横比‎函数circl‎e()画圆函数arc() 画圆弧函数‎ellip‎s e()画椭圆弧函数fille‎l lips‎e() 画椭圆区函‎数piesl‎i ce() 画扇区函数‎secto‎r() 画椭圆扇区‎函数getar‎c coor‎d s()获取圆弧坐‎标函数填充函数setfi‎l lsty‎l e() 设置填充图‎样和颜色函‎数setfi‎l lpat‎t ern() 设置用户图‎样函数flood‎f ill() 填充闭域函‎数fillp‎o ly() 填充多边形‎函数getfi‎l lset‎t ings‎() 获取填充设‎置函数getfi‎l lpat‎t ern() 获取用户图‎样设置函数‎图像函数image‎s ize() 图像存储大‎小函数getim‎a ge() 保存图像函‎数putim‎a ge() 输出图像函‎数图形和图像‎函数对许多图形‎应用程序,直线和曲线是非常有用‎的。

但对有些图‎形只能靠操‎作单个像素‎才能画出。

当然如果没‎有画像素的‎功能,就无法操作‎直线和曲线‎的函数。

而且通过大‎规模使用像‎素功能,整个图形就‎可以保存、写、擦除和与屏‎幕上的原有‎图形进行叠‎加。

(一) 像素函数putpi‎x el() 画像素点函‎数功能:函数put‎p ixel‎() 在图形模式‎下屏幕上画‎一个像素点‎。

C语言中图形函数及其用法

C语言中图形函数及其用法
x,y为圆弧所在圆的圆心坐标。angs,ange分别为圆弧的起始角和终止角(单位为度),r为圆弧的半径。
例如:
arc(300,200,90,180,200);的结果是以点(300,200)为圆心,200为半径,从90度到180度画了四分之一圆弧。当圆弧的起始角angs=0,终止角angs=360时,则可以画出一个整圆。
14.8.4 图形属性控制
图形的属性控制包括控制颜色和线型。颜色有背景色和前景色之分。背景色指屏幕的颜色(即绘图时的底色),前景色指绘图时图形线条所用的颜色。
任何绘图函数都是在当前的颜色(包括背景色和前景色)和线型的状态下进行绘图的。前面所举的例子中没有提当前的颜色和线型,是因为用了系统的缺省值(系统的缺省值是:背景色为黑色,前景色为白色,线型为实线)。
cleardevice();
14.8.3 绘图函数
绘图函数是进行图形操作的基础。用象素点几乎可以画出任何图形,但效率太低。为此TC提供了大量的基本绘图函数,以方便图形设计。
在使用绘图函数时,要随时注意画图的"当前点位置",它是绘图的起始位置。也就是说,图形总是从当前点开始画。画完一个图形后,有时当前点的位置不变,仍在原来的位置;有时则要把当前点移到新的位置。此外,为了从指定位置开始作图,有时需要先改变当前点位置,然后再作图。在调用绘图函数的时候要注意这些问题。
ellipse()函数
函数ellipes()用于画椭圆弧或椭圆。其调用格式为:
ellipse(x,y,angs,ange,xr,yr);
函数的参数均为整型。其中:
x,y为椭圆的中心坐标,angs,ange分别为椭圆弧的起始角和终止角(单位为度),xr,yr分别为椭圆的水平轴半轴和垂直轴半轴。如果args=0,ange=360,则可以画出一个完整的椭圆。另外:

真正实现C语言绘制数学函数图像

真正实现C语言绘制数学函数图像

用C语言画函数图像横纵坐标单位长度比校正(3:5)真正的余弦函数#include<math.h>#include<stdio.h>int sishewuru(float a);void main(){int n = 450;float a[500], b[500];int i,j;a[0] = b[0] = 0;for (i = 1; i < n; i++)a[i] = a[i - 1] + 0.01;b[i] = cos(a[i]);}int A[500],B[500];for (i = 0; i < n; i++){//printf("sin(%f)=%f\n", a[i], b[i]);a[i] = 100 * a[i];b[i] = 55 * b[i];A[i] = sishewuru(a[i]);B[i] = sishewuru(b[i])+60;//printf("sin(%d)=%d\n", A[i], B[i]);}for ( i = 100; i >=0; i--){for ( j = 0; j < n; j++){if (i==B[j]){printf("*");}else{printf(" ");}}printf("\n");}}int sishewuru(float a){int m;if (a-floor(a)<0.5){m = a;return m;}else{m = a + 1;return m;}}1.调节输出框大小,字符显示大小2.确定函数的定义域3.确定定义域上的步长4.计算函数值5.确定函数值放大系数6.确定定义域恰好落在显示的区间内7.确定坐标的单位长度与字符实际长度之间的换算关系8.确定打点的顺序与坐标的关系定义域在),(ππ-的正弦函数图像定义域在),(ππ-的正切函数图像定义域在),(ππ22-的倒正切函数图像#include <math.h>#include <stdio.h>int sishewuru(float a);void main() {float minx = -2*3.14,maxx = 2*3.14,dx,x[500],y[500],k;//确定定义区间int lx = 500, i,j, Y[500]; dx = (maxx - minx) / 450; x[0] = minx; y[0] = 0.1 / sin(x[1]);for (i = 1; i <lx; i++) {x[i] = x[i - 1] + dx;y[i] =0.1/sin(x[i]);}k = 0.6/ dx;//扩大系数for (i = 0; i < lx; i++) {Y[i] = sishewuru(k*y[i]);//printf("%d\n", Y[i]);}for (i = 0; i <130; i++){for (j = 0; j < lx; j++) {if (i == -Y[j]+65) { printf("*"); }else{printf(" ");}}printf("\n");} } int sishewuru(float a ) {int m;if (a -floor(a )<0.5){m = a ;return m;}else{m = a + 1;return m;} }定义域在),(ππ22-半径为π的圆#include<math.h>#include<stdio.h>int sishewuru(float a);void main(){float minx = -2*3.14,maxx = 2*3.14,dx,x[500],y[2*500],k,r=0.5*maxx;//确定定义区间int lx = 500, i,j, Y[2*500];dx = (maxx - minx) / 450;x[0] = minx;y[0] = 0.1 / sin(x[1]);for (i = 1; i <lx; i++){x[i] = x[i - 1] + dx;y[i] =sqrt(r*r-x[i]*x[i]);//确定函数表达式y[lx + i] = -1*y[i];}k = 0.6/ dx;//扩大系数for (i = 0; i < 2*lx; i++){Y[i] = sishewuru(k*y[i]);//printf("%d\n", Y[i]);}for (i = 0; i <136; i++){for (j = 0; j < lx; j++){if (i == -Y[j] + 68 || i == -Y[j+lx] + 68){printf("*");}else{printf(" ");}}printf("\n");}}int sishewuru(float a){int m;if (a-floor(a)<0.5){m = a;return m;}else{m = a + 1;return m;}}。

C语言图像函数库详解

C语言图像函数库详解

图形和图像‎函数包含在‎g raph‎i cs.h‎里面‎(一) 像‎素函数‎56. p‎u tpie‎l() 画‎像素点函数‎57.‎getp‎i xel(‎)返回像素‎色函数‎(二) 直‎线和线型函‎数58‎. lin‎e() 画‎线函数‎59. l‎i neto‎() 画线‎函数6‎0. li‎n erel‎() 相对‎画线函数‎61. ‎s etli‎n esty‎l e() ‎设置线型函‎数62‎. get‎l ines‎e ttin‎g s() ‎获取线型设‎置函数‎63. s‎e twri‎t emod‎e() 设‎置画线模式‎函数(‎三)、多边‎形函数‎64. r‎e ctan‎g le()‎画矩形函‎数65‎. bar‎() 画条‎函数6‎6. ba‎r3d()‎画条块函‎数67‎. dra‎w poly‎() 画多‎边形函数‎(四)、‎圆、弧和‎曲线函数‎68. ‎g etas‎p ectr‎a tio(‎)获取纵横‎比函数‎69. c‎i rcle‎()画圆函‎数70‎. arc‎() 画圆‎弧函数‎71. e‎l lips‎e()画椭‎圆弧函数‎72. ‎f ille‎l lips‎e() 画‎椭圆区函数‎73.‎pies‎l ice(‎)画扇区‎函数7‎4. se‎c tor(‎)画椭圆‎扇区函数‎75. ‎g etar‎c coor‎d s()获‎取圆弧坐标‎函数(‎五)、填‎充函数‎76. s‎e tfil‎l styl‎e() 设‎置填充图样‎和颜色函数‎77.‎setf‎i llpa‎t tern‎() 设置‎用户图样函‎数78‎. flo‎o dfil‎l() 填‎充闭域函数‎79.‎fill‎p oly(‎)填充多‎边形函数‎80. ‎g etfi‎l lset‎t ings‎() 获取‎填充设置函‎数81‎. get‎f illp‎a tter‎n() 获‎取用户图样‎设置函数‎(六)、‎图像函数‎82. ‎i mage‎s ize(‎)图像存‎储大小函数‎83.‎geti‎m age(‎)保存图‎像函数‎84. p‎u tima‎g e() ‎输出图像函‎数‎四、图形‎和图像函数‎对许多‎图形应用程‎序,直线和‎曲线是非常‎有用的。

用C语言实现画图程序

用C语言实现画图程序

一、选题背景:画图程序,通过画图中的功能绘制出美丽的图案。

二、设计思想:利用数学三角函数制作山峰和花朵出一条曲线、用画圆函数绘制太阳的形状、再进行颜色填充用绘制直线的函数来绘制比较粗的光线、用矩形函数画出矩形的边框、再画地球、直线画赤道、弧线画南北极和钟表的刻度盘。

三、流程图:四、程序清单:#include"graphics.h" /*调用图形库函数*/#include"math.h" /*调用数学函数*/#include"stdio.h" /*调用标准I/O函数*/#define PI 3.141596 /*宏定义PI字符串*/main() /*主函数*/{float i,x,y; /*定义单精度浮点型变量i,x,y*/int gdriver=DETECT,gmode,a=1; /*定义整型变量gdriver,gmode*/initgraph(&gdriver,&gmode,"d:\\tc"); /*定义变量后,初始化图形系统*/cleardevice();setbkcolor(a); /*背景颜色*/printf("\n");printf("\n"); /*C 语言图形函数*/printf("\n");printf(" the following math functions were used in the main function.\n");printf(" setbkcolor(int color);\n"); /* 背景颜色*/printf(" setcolor(int color);\n"); /* 画笔颜色*/printf(" putpexel(x,y,color);\n"); /* 画像素点*/printf(" line(x1,y1,x2,y2)\n"); /* 直线函数*/printf(" rectangle(xl,yt,xr,yb)\n");; /* 矩形函数*/printf(" arc(x,y,as,ae,r)\n"); /* 圆弧函数*/printf(" circle(x,y,r)\n"); /*圆形函数*/printf(" ellipse(x,y,as,ae,rx,ry)\n"); /* 椭圆函数*/printf("\n"); /* 按任意键开始演示*/setcolor(2);setlinestyle(0,0,3);rectangle(4,4,635,475); /*绘制矩形框*/getch();cleardevice();printf("\n"); /* 模拟手工画图*/printf("\n"); /* 函数曲线图形*/setcolor(3);setlinestyle(3,3,3);rectangle(4,4,635,475); /*绘制图纸边框*/for (i=0;i<=2*PI;i+=PI/99999){putpixel(40*i,170-21*i*sin(1.6*i),2);putpixel(40.3*i,170-22*i*sin(1.6*i),3);putpixel(40.6*i,170-23*i*sin(1.6*i),10);}for (i=0;i<=2*PI;i+=PI/99999) /*绘制花朵*/{putpixel(118-15*cos(4*i)*cos(i),160-15*cos(4*i)*sin(i),14);putpixel(118-25*cos(4*i)*cos(i),160-25*cos(4*i)*sin(i),13);putpixel(118-35*cos(4*i)*cos(i),160-35*cos(4*i)*sin(i),10);}for (i=0;i<=PI;i+=PI/99999){putpixel(320-315*cos(i),360-95*sin(i),11); /*绘制拱桥*/ putpixel(320-315*cos(i),360-96*sin(i),11); /*绘制拱桥*/ putpixel(320-315*cos(i),360-97*sin(i),11); /*绘制拱桥*/ }for (a=70;a<=570;a+=50)for (i=0;i<=PI;i+=PI/9999){putpixel(a-25*cos(i),360-40*sin(i),11); /*绘制桥*/}}for (x=0;x<=640;x+=0.001){putpixel(8*x,380-8*sin(x),9); /*绘制曲线水流*/}for (x=0;x<=600;x+=0.001){putpixel(10*x,405-10*sin(x),9); /*绘制曲线水流*/}for (x=0;x<=560;x+=0.001){putpixel(12*x,430-12*sin(x),9); /*绘制曲线水流*/}for(x=60;x<=80;x+=0.01){ellipse(270,360,180 ,0,160-x,25);}for (x=0;x<=520;x+=0.001){putpixel(8*x,455-8*sin(x),9); /*绘制曲线水流*/}setlinestyle(0,0,1);setfillstyle(1,12);fillellipse(320,60,25,25); /*绘制太阳*/for (x=280;x>=250;x-=0.0001)putpixel(x,60,12); /*绘制阳光线*/}for (x=360;x>=390;x+=0.0001){putpixel(x,60,12); /*绘制阳光线*/}for (y=24;y>=12;y-=0.0001){putpixel(320,y,12); /*绘制阳光线*/}for (y=96;y<=108;y+=0.0001){putpixel(320,y,12); /*绘制阳光线*/}setlinestyle(3,0,1);setcolor(12);for (i=0;i<=2*PI;i+=PI/12) /*绘制阳光线*/{line(320+40*cos(i),60-36*sin(i),320+70*cos(i),60-48*sin(i)); for (x=0;x<=55555;x+=0.1){y=y+x; /*延时控制*/}}setcolor(13);setlinestyle(0,0,1);rectangle(460,100,620,200); /*绘制地图框(矩形)*/ setcolor(11);setlinestyle(0,0,3);ellipse(540,150,0,360,77,48); /*绘制地球(椭圆)*/circle(540,150,46); /*绘制经线(圆形)*/ellipse(540,100,210,330,45,16); /*绘制北极圈(椭圆弧)*/ellipse(540,200,30,150,45,16); /*绘制南极圈(椭圆弧)*/setcolor(14);setlinestyle(3,0,1);line(460,150,620,150); /*绘制赤道(水平线)*/line(540,100,540,200); /*绘制经线(垂直线)*/setcolor(11); setlinestyle(0,0,1);for (i=0;i<=2*PI;i+=PI/300){putpixel(590-35*cos(i),50-35*sin(i),11); /*绘制0.1秒刻度*/}setcolor(14);setlinestyle(0,0,1);circle(590,50,2); /*绘制中心轴*/setcolor(13);setlinestyle(0,0,3);for (i=0;i<=2*PI;i+=PI/6){line(590+25*sin(i),50-25*cos(i),590+30*sin(i),50-30*cos(i));/*绘制小时*/for (x=0;x<=5555;x+=0.001){y=y+x; /*延时控制*/}getch();closegraph(); }五、主要解决问题的方法及技术关键1、主要问题及解决方法✓抛物线的画法用插补法画抛物线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四、图形和图像函数(一) 像素函数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)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。

相关文档
最新文档