利用C语言图形函数绘图
C语言图形编程——绘图函数

C语言图形编程——绘图函数一屏幕和视口设置与清除函数36.setviewport() 设置图形视口函数37.clearviewport()清除图形视口函数38.cleardevice() 清除屏幕函数39.getviewsettings() 获取图形视口设置函数二调色板和颜色函数40.setpalette()设置调色板函数41.setallpalette()设置整个调色板函42.setbackcolor() 设置背景颜色函数43.setcolor() 设置颜色函数44.getbkcolor() 返回背景色函数45.getcolor() 返回当前绘图颜色46.getmaxcolor()返回最大颜色值函数47.getpalette() 获取调色板函数48.getpalettesize() 返回调色板大小函数49.getdefaultpalette() 获取缺省调色板函数三屏幕位置函数50.getmaxx()返回最大x坐标函数51.getmaxy() 返回最大y坐标函数52.getx() 返回x坐标函数53.gety() 返回y坐标函数54.moveto()函数55.moverel() 相对移动函数----------------------------------------------------Borland C++提供了一整套综合性的图形函数,上节介绍了其中有关图形显示的函数,本节介绍其中的绘图函数,下节将介绍它的图形文本函数.一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等.下面给出具有这些功能的函数.一屏幕和视口设置与清除函数36.setviewport() 设置图形视口函数功能: 函数setviewport() 设置当前图形视口.用法: 函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);说明: 参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。
常用C语言图形函数使用说明

常用C语言图形函数使用说明(以下函数均应在图形方式初始之后使用,在win-tc中使用BGI图形程序模板时,其中已经定义有一个initgr函数,在main函数中应在执行initgr函数之后再使用这些函数。
使用这些函数时,均应在程序中包含头文件graphics.h,即程序开始时应有#include "graphics.h")1、setcolor(色彩值):设置绘图色彩,使用该函数后,图形函数所绘制的直线或曲线为该函数中指定的色彩。
例如:setcolor(YELLOW);circle(320,240,100);在屏幕中央以黄色绘制半径为100的圆。
(关于画图色彩使用的说明)2、setbkcolor(色彩值):设置图形屏幕的背景色彩,使用该函数后图形屏幕清屏,背景色彩为该函数中所指定的色彩。
如果没有使用该函数设置背景色,则图形屏幕的背景色彩为黑色。
3、cleardevice():清除图形屏幕上已经绘制的内容,该函数没有参数。
4、line(x1,y1,x2,y2): 绘制直线段,其中(x1,y1)为一个端点的坐标,(x2,y2)为另一个端点的坐标。
直线的色彩为在使用该函数之前通过setcolor函数所设置的色彩。
例如:setcolor(WHITE);line(0,240,639,240);绘制一条横贯屏幕中间的白色水平直线。
5、circle(x,y,r):绘制一个以(x,y)为圆心坐标,半径为r的圆。
例如:setcolor(WHITE);circle(320,240,100);绘制一个以(320,240)为圆心位置,半径为100的圆。
6、rectangle(x1,y1,x2,y2):绘制一个以(x1,y1)和(x2,y2)为对角端点坐标的矩形7、putpixel(x,y,color):在(x,y)坐标位置处绘制一个点,点的色彩由color指定。
例如:putpixel(320,240,RED);在屏幕中央绘制一个红色的点。
利用C语言图形函数绘图共10页

计算机图形学课程实验 报 告实验题目班 级 姓 名 学 号 指导教师 日 期西安理工大学理学院应用数学系二零一二年春季学期信息与计算科学专业基础课Computer Graphics Report Of course experiment实验说明试验目的: 掌握TurboC 语言图形函数的使用和学会绘制一般图形。
试验地点: 教九楼401 数学系机房实验要求(Direction ):1. 每个学生单独完成;2.开发语言为TurboC 或C++,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。
实验内容实验题一1.1实验题目用如下图1所示,图中最大正n 边形的外接圆半径为R ,旋转该正n 边形,每次旋转θ角度,旋转后的的n 边形顶点落在前一个正六边形的边上,共旋转N 次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n 边形。
要求:(1) n 、R 、N 、θ要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。
利用C 语言图形函数绘图实验11.2实验目的和意义1. 了解如何利用C语言和图形函数进行绘图;2. 熟悉并掌握C语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;3. 通过对Turbo C进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制N+1个正n边形,了解图形系统初始化、图形系统关闭和图形模式的控制,并熟练运用图形坐标的设置,包括定点、读取光标、读取x和y轴的最大值以及图形颜色的设置。
1.3程序制作步骤(包括算法思想、算法流程图等)算法思想:1.自动搜索显示器类型和显示模式,初始化图形系统,通过printf、scanf语句控制半径r、边数n、多边形的个数k、边的每次旋转角度d,的自由输入;2.给定一内接圆半径r,由圆内接多边形的算法公式:x[i]=r*cos((i+1) *2.0*pi/n)+320.0y[i]=240.0-r*sin(2.0*pi/n *(i+1))确定出多边形N的各个顶点坐标,然后利用划线函数line(),连接相邻两点,即形成一个正多边形。
C语言图形编程(三、绘图函数-02)4

C语言图形编程(三、绘图函数-02)4struct linesettingstype info;getlinesettings(&info);63.setwritemode() 设置画线模式函数功能:函数setwritemode() 设置画线模式用法:函数调用方式为 void setwritemode()(int mode);说明:参数mode只有两个取值0和1,若mode为0,则新画的线将复盖屏幕上原有的图形,此为缺省画线输出模式。
如果mode 为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。
调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。
setwritemode()函数对应的头文件是graphics.h返回值:无例:设置画线输出模式为0:setwritemode(0);(三)、多边形函数对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。
最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。
下面直接介绍画多边形的函数。
64. rectangle() 画矩形函数功能:函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。
用法:此函数调用方式为void rectangle(int left,int top,int right,int bottom);说明:参数left,top是左上角点坐标,right,bottom是右下角点坐标。
如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。
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语言画图函数与图形有关的函数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语言中图形函数及其用法

C语言中图形函数及其用法Turbo C 2.0具有丰富的图形功能,它提供了70多个图形函数。
在这里只介绍最常用的一部分,其余的图形函数及用法可参阅相关书籍。
图形函数均在头文件"graphics.h"中定义,所以在程序中调用这些图形函数时,必须在程序文件的开头写上文件包含命令:#include "graphics.h"。
14.8.1 图形系统管理PC机的显示器有两种工作模式,一种是图形模式,另外一种是文本模式(缺省模式)。
在文本方式下,屏幕分为80列、25行,在该方式下,图形函数不能正确工作。
因此在使用图形函数绘图之前,必须将屏幕显示适配器设置为图形模式,这就是通常所说的"图形方式初始化"。
在绘图工作完毕之后,又要使屏幕回到文本方式,以便进行文本方式下的工作。
1. 图形方式初始化图形方式初始化是通过函数initgraph()来完成的。
其调用格式为:initgraph(*gdriver,*gmode,*path);函数initgraph()的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将系统设置为图形方式。
调用该函数必须用三个参数,其含义为:gdriver是一个整型值,用来指定要装入的图形驱动程序,如果给其赋值为DETECT(该值在头文件"graphics.h"已经中定义), 则系统自动检测图形适配器的最高分辨率模式,并装入相应的图形驱动程序。
gmode是一个整型值,用来设置图形显示模式。
不同的图形驱动程序有不同的图形显示模式;即使是在同一个图形驱动程序下,也可能会有几种图形显示模式。
图形显示模式决定了显示的分辨率、可同时显示的颜色的多少、调色板的设置方式以及存储图形的一页数。
path是一个字符串,用来指明图形驱动程序所在的路径。
如果驱动程序就在用户当前目录下,则该参数可以为空字符串,否则应给出具体的路径名。
项目3使用C语言图形函数画图

项目3使用C语言图形函数画图实践任务3课程名称c语言程序设计实践任务使用C图形函数画图实践地点指导教师班级学生姓名学号教师评分日期实践任务3搭建VC++6.0集成开发环境3.1任务目的(1)掌握函数概念(2)掌握C图形函数的使用方法(3)掌握smartdraw的安装和使用3.2知识要点3.2.1屏幕坐标系屏幕显示模式就是数据在屏幕上的显示方式。
C语言把屏幕显示模式分为文本模式和图形模式两种。
图形模式中,为了便于指定屏幕上位置,我们取屏幕左上角为坐标原点,第一行所在位置为x轴,第一列所在位置为y轴,建立如图3-1所示的屏幕直角坐标系。
图3-4屏幕坐标示意图建立屏幕直角坐标系后,就可以用有序数对(x,y)表示屏幕上点的位置。
在点的坐标(x,y)中,x指定点的列坐标,y指定点的行坐标#显示器屏幕上象素的数目由分辨率决定,如果分辨率是640×480,即屏幕每行有640个象素,每列有480个象素。
3.2.1基本图形(1)画圆函数:voidcricle(intx,inty,intr);如图3-2所示图3-2画圆函数说明图示关键字void表示函数无返回值,circle是函数名,后面的括号里面是参数列表,参数之间用“,”号隔开,参数前面的关键字是参数的数据类型,xy为坐标,r为圆半径。
(2)画矩形函数:voidrectangle(intleft,inttop,intright,intbottom)(left,top)表示的是矩形左上角点坐标,(right,botom)表示的是矩形右下角点坐标,(3)设置画笔的颜色函数:voidsetcolor(intcolor);EasyX图形库使用24bit真彩色,通常使用预定义的字符常量来代表颜色字符常量在这里代表的是整形数,为了便于记忆,免除了人们记忆枯燥的数字,如setcolor(0x0000AA)和setcolor(RED)都是用来设置画笔颜色为红色,显然setcolor(RED)用起来很简单,还要说明的是表中整数值是16进制数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机图形学课程实验 报 告实验题目班 级 姓 名 学 号 指导教师 日 期西安理工大学理学院应用数学系二零一二年春季学期信息与计算科学专业基础课Computer Graphics Report Of course experiment实验说明试验目的: 掌握TurboC 语言图形函数的使用和学会绘制一般图形。
试验地点: 教九楼401 数学系机房实验要求(Direction ):1. 每个学生单独完成;2.开发语言为TurboC 或C++,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。
实验内容实验题一1.1实验题目用如下图1所示,图中最大正n 边形的外接圆半径为R ,旋转该正n 边形,每次旋转θ角度,旋转后的的n 边形顶点落在前一个正六边形的边上,共旋转N 次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n 边形。
要求:(1) n 、R 、N 、θ要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。
利用C 语言图形函数绘图实验11.2实验目的和意义1. 了解如何利用C语言和图形函数进行绘图;2. 熟悉并掌握C语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;3. 通过对Turbo C进行图形程序设计的基本方法的学习,能绘制出简单的图形;4. 通过绘制N+1个正n边形,了解图形系统初始化、图形系统关闭和图形模式的控制,并熟练运用图形坐标的设置,包括定点、读取光标、读取x和y轴的最大值以及图形颜色的设置。
1.3程序制作步骤(包括算法思想、算法流程图等)算法思想:1.自动搜索显示器类型和显示模式,初始化图形系统,通过printf、scanf语句控制半径r、边数n、多边形的个数k、边的每次旋转角度d,的自由输入;2.给定一内接圆半径r,由圆内接多边形的算法公式:x[i]=r*cos((i+1) *2.0*pi/n)+320.0y[i]=240.0-r*sin(2.0*pi/n *(i+1))确定出多边形N的各个顶点坐标,然后利用划线函数line(),连接相邻两点,即形成一个正多边形。
3.根据边与角的关系,以及线段定比分点公式,可知旋转后的多边形的各个顶点的坐标。
公式如下:x[i]=(x[i]+x[i+1]/(k+1))y [i]=(y[i]+y[i+1]/(k+1))k=360/(n*d) (n为多边形的边数,d为多边形旋转的度数)然后与第二步相同,利用划线函数line(),连接形成又一个旋转过的正多边形,这样就形成了所要绘制的图形;4.关闭图形系统。
1.4主程序程序代码:/*----- 多边形的逐次旋转------*/#include "stdio.h"#include "conio.h"#include "math.h"#include "graphics.h"#include "stdlib.h"#include "time.h"void main(){int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/int r;int i,j,n,k,d;float x,y,q;int a[100],b[100];char str1[80],str2[80];printf("请输入正接圆的半径r:\n");scanf("%d",&r);printf("请输入多边形的边数n:\n");scanf("%d",&n);printf("请输入多边形的个数k:\n");scanf("%d",&k);printf("请输入每次的旋转角度d:\n");scanf("%d",&d);initgraph(&graphdriver,&graphmode,"D:\\TC"); /*初始化图形系统*/printf("\n\t注意:maxx=%d,maxy=%d\n",getmaxx(),getmaxy());printf("\n\tr=%d, n=%d, k=%d, d=%d",r,n,k,d);x=(getmaxx()+1)/2.0;y=(getmaxy()+1)/2.0;q=360/n; /*角增量*/q=q*3.1415926/180; /*将角增量化为弧度*/for(i=1;i<=n;i++) /*计算初始正n角形顶点坐标*/{a[i]=(int)((int)x+r*cos((i-1)*q));b[i]=(int)((int)y-r*sin((i-1)*q));}a[n+1]=a[1];b[n+1]=b[1]; /*闭合正n角形,以便连续画线*//*--------画k个正多角形-----------*/for(i=1;i<=k;i++){for(j=1;j<=n;j++) /*画一个正多角形*/line(a[j],b[j],a[j+1],b[j+1]);for(j=1;j<=n;j++) /*计算下一个正多边形顶点坐标*/{a[j]=(int)(a[j]+(a[j+1]-a[j])/d);b[j]=(int)(b[j]+(b[j+1]-b[j])/d);}a[n+1]=a[1];b[n+1]=b[1];}getch();closegraph();}1.5运行结果图实验题二2.1实验题目请绘制一个图:屏幕中央有一个半径为R1=160的大圆和一个同心的且半径为R2=120的小圆,同时在大圆和小圆中间均匀分布着12个与大圆和小圆相切的圆。
如下图2所示:要求:(1)分别用12种不同的颜色和填充模式填充12个小圆;(2)用自定义模式填充中间小圆,且用漫延填充方法填充;(3)用自定义模式填充中间小圆时,填充模式图案自己设计。
例如,用字母A 、字母B、字母C填充图案可设计为:2.2实验目的和意义1.学会运用画圆函数circle(),图形填充函数包括:setfillstyle()、setfillpattern()以及floodfill()来填充圆;2.学会用自定义模式填充指定圆,并且用漫延填充方法填充;3.学会用自定义图案来填充指定圆。
2.3程序制作步骤(包括算法思想、算法流程图等)算法思想:1.输入所要求环绕的小圆的个数n,设置画笔颜色,利用circle()画半径为160的大圆,然后画半径为120的小圆并按照输入的模式m选择相应的填充模式。
2.利用圆内接多边形的算法,算出环绕小圆的各个圆心坐标,公式如下:x[i]=r*cos( (i+1) * 2.0*pi/n)+200.0y[i]=200.0-r*sin( (i+1) * 2.0*pi/n)以20为半径画环绕的n个小圆,并用不同的颜色填充。
2.4主程序#include "stdio.h"#include "conio.h"#include "math.h"#include "graphics.h"#define pi 3.#define MAX 50void main(){int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/ double x[MAX],y[MAX];int i,j,n,m;double r,theta;double sin(double),cos(double);char p1[8]={(char)0x00,(char)0x3c,(char)0x20,(char)0x20,(char)0x38,(char)0x20,(char)0x20,(char)0x20};r=160.0;printf("please input the numble of N=");scanf("%d",&n);initgraph(&graphdriver,&graphmode,"D:\\TC"); /*初始化图形系统*/ theta=2.0*pi/n;setcolor(3);circle(200,200,200);setcolor(6);setfillstyle(12,0);setfillpattern(p1,9);circle(200,200,120);floodfill(200,200,6);while(!kbhit()){for(j=2;j<=n;j++)for(i=0;i<=n;i++){x[i]=r*cos(theta*(i+j))+200.0;y[i]=200.0-r*sin(theta*(i+j));setcolor(i);circle((int)x[i],(int)y[i],(int)40);setfillstyle(SOLID_FILL,i);floodfill((int)x[i],(int)y[i],i);}delay(10000);cleardevice();setcolor(3);circle(200,200,200);setcolor(6);setfillstyle(12,0);setfillpattern(p1,9);circle(200,200,120);floodfill(200,200,6);}getch();closegraph();}2.5运行结果图实验题三3.1实验题目自选题目:(1)请编写一动画:绘制上述实验2中的图形,并要求:✓ 1.让图案中的12个小圆按顺时针或逆时针方向不停地旋转;✓ 2.半径为R2=120的小圆用黑色和实填充模式填充,并在小圆内绘制一些闪烁的星星(可参考课本P81 例3.27)。
或者用不同的颜色和填充模式不停地填充小圆,产生动画效果。
(2)请编写一动画:实现实验1中的图形由大到小(由小到大)旋转的动态过程。
(3)编写一个描述一俩自行车在一公路上由左向右行驶的程序,运行效果图大致如图三所示。
(可参考课本P74 例3.21)(4)试着自行设计一个动画或美术图案,并且上机编程实现。