利用C语言图形函数绘图

合集下载

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语言图形函数使用说明

常用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页

利用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)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语言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语言画图函数与图形有关的函数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语言中图形函数及其用法

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语言图形函数画图实践任务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进制数。

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语言画图例子利用C语言画图例子1)/*#include // 就是需要引用这个图形库 #includevoid main()#include#includevoid main(){initgraph(640, 480); // 这里和 TC 略有区别circle(200, 200, 100); // 画圆,圆心(200, 200),半径100 getch(); // 按任意键继续closegraph(); // 关闭图形界面printf("***\n");}*/2)/*#include#include#includevoid main(){// 设置随机函数种子srand((unsigned) time(NULL));// 初始化图形模式initgraph(640, 480);int x, y;char c;setfont(16, 8, "Courier"); // 设置字体while(!kbhit()){for (int i=0; i<479; i++){setcolor(GREEN);for (int j=0; j<3; j++){x = (rand() % 80) * 8;y = (rand() % 20) * 24;c = (rand() % 26) + 65; outtextxy(x, y, c);}setcolor(0);line(0,i,639,i);Sleep(10);if (kbhit()) break;}}// 关闭图形模式closegraph();}*/3)/*#include#include#include#define MAXSTAR 200 // 星星总数struct STARdouble x;int y;double step;int color;};STAR star[MAXSTAR];// 初始化星星void InitStar(int i){star[i].x = 0;star[i].y = rand() % 480;star[i].step = (rand() % 5000) / 1000.0 + 1; star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5); // 速度越快,颜色越亮star[i].color = RGB(star[i].color, star[i].color, star[i].color);}// 移动星星void MoveStar(int i){// 擦掉原来的星星putpixel((int)star[i].x, star[i].y, 0);// 计算新位置star[i].x += star[i].step;if (star[i].x > 640) InitStar(i);// 画新星星putpixel((int)star[i].x, star[i].y, star[i].color); }// 主函数void main()srand((unsigned)time(NULL)); // 随机种子initgraph(640, 480); // 打开图形窗口// 初始化所有星星for(int i=0; i<="" p="">{InitStar(i);star[i].x = rand() % 640;}// 绘制星空,按任意键退出while(!kbhit()){for(int i=0; i<="" p="">MoveStar(i);Sleep(20);}closegraph(); // 关闭图形窗口}*/4)/*#include#includevoid main(){float H, S, L;initgraph(640, 480);// 画渐变的天空(通过亮度逐渐增加)H = 190; // 色相S = 1; // 饱和度L = 0.7f; // 亮度for(int y = 0; y < 480; y++){L += 0.0005f;setcolor( HSLtoRGB(H, S, L) );line(0, y, 639, y);}// 画彩虹(通过色相逐渐增加)H = 0;S = 1;L = 0.5f;setlinestyle(PS_SOLID, NULL, 2); // 设置线宽为 2 for(int r = 400; r > 344; r--){H += 5;setcolor( HSLtoRGB(H, S, L) );circle(500, 480, r);}getch();closegraph();}*/5)#include#includevoid main(){// 初始化图形窗口initgraph(640, 480);MOUSEMSG m; // 定义鼠标消息while(true){// 获取一条鼠标消息m = GetMouseMsg();switch(m.uMsg){case WM_MOUSEMOVE:// 鼠标移动的时候画红色的小点putpixel(m.x, m.y, RED);break;case WM_LBUTTONDOWN:// 如果点左键的同时按下了 Ctrl 键if (m.mkCtrl)// 画一个大方块rectangle(m.x-10, m.y-10, m.x+10, m.y+10); else// 画一个小方块rectangle(m.x-5, m.y-5, m.x+5, m.y+5); break;case WM_RBUTTONUP:return; // 按鼠标右键退出程序}}// 关闭图形窗口closegraph();}。

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语言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语言中的形绘制方法

C语言中的形绘制方法C语言作为一种广泛使用的编程语言,在计算机科学和软件工程领域有着重要的地位。

除了其强大的计算和算法处理能力外,C语言还提供了各种绘制形状的方法,可以通过编程实现各种图形效果。

本文将介绍C语言中常用的形绘制方法,以帮助读者更好地理解和运用这些技术。

1. 点的绘制方法在C语言中,点是最基本的图形元素之一。

我们可以使用坐标系来描述点的位置,其中横坐标表示点在水平方向上的位置,纵坐标表示点在垂直方向上的位置。

在C语言中,我们可以使用图形库(如graphics.h)提供的函数来绘制点,例如:```cputpixel(int x, int y, int color);```这个函数可以在指定位置绘制一个点,其中x和y是点在坐标系中的横纵坐标,color表示点的颜色。

通过循环调用putpixel函数,我们可以绘制出多个点,从而形成任意形状。

2. 线的绘制方法线是由多个相邻的点连接而成的形状。

在C语言中,我们可以使用直线的斜率和截距来描述线的方程,通过计算斜率和截距,可以确定线上各个点的位置。

除了使用直线方程计算点的位置外,C语言还提供了一些绘制线的函数,例如:```cline(int x1, int y1, int x2, int y2);```这个函数可以在坐标系中绘制一条起点为(x1, y1),终点为(x2, y2)的直线。

通过调用line函数,我们可以绘制出直线形状。

3. 矩形的绘制方法矩形是由四条线段组成的形状,有时我们需要在C语言中绘制矩形以实现特定的效果。

在C语言中,我们可以使用以下函数来绘制矩形:```crectangle(int left, int top, int right, int bottom);```这个函数可以在坐标系中绘制一个左上角坐标为(left, top),右下角坐标为(right, bottom)的矩形。

通过调用rectangle函数,我们可以绘制出矩形形状。

CG实验1-利用C语言图形函数绘图

CG实验1-利用C语言图形函数绘图

实验1 利用C 语言图形函数绘图1实验目的:熟悉C 语言图形功能,为今后实验打基础。

2实验要求:在CodeBlocks 环境下编写程序 3实验内容例1 利用line()函数画圆在计算机绘图中,任何曲线均可以利用line()函数绘制。

下面通过绘制一个圆说明利用line()函数绘制曲线的方法。

在圆上任取一点P(X,Y),以C 点为圆心的圆的参数方程为⎩⎨⎧==SINstR Y COSstR X ** 在计算机绘图中,屏幕左上角为坐标原点,X 坐标方向水平向右,Y 坐标方向垂直向下。

在该坐标下,设圆心C 的坐标为(X0,Y0),则圆的参数方程变为:⎩⎨⎧-=+=SINst R Y Y COSstR X X *0*0 根据圆的参数方程,利用c 语言编程绘制圆。

程序1-1.cpp 实现利用line()函数画圆。

/*1-1.cpp*/#include<graphics.h> #include<math.h> main() {int i,j,r,xx[21],yy[21],x0,y0; float st=360/20*3.14/180; x0=300;y0=250;r=200; initgraph(800,600);setbkcolor(BLUE);setcolor(YELLOW); for(i=0;i<21;i++){ xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st); } for(i=0;i<20;i++)line(xx[i],yy[i],xx[i+1],yy[i+1]); getch();closegraph(); }例2 画一个金刚石图案程序1-2.cpp绘制图1-1所示的金刚石图案。

#include<graphics.h>#include<math.h>main(){int i,j,r,xx[20],yy[20],x0,y0;float st=360/20*3.14/180;x0=300;y0=250;r=200;initgraph(800,600);setbkcolor(BLUE);setcolor(YELLOW);for(i=0;i<20;i++){ xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st); } for(i=0;i<20;i++){for(j=0;j<20;j++)line(xx[i],yy[i],xx[j],yy[j]);}getch();closegraph();}图1-1金刚石图案具体实验要求:(1)修改1-2.cpp的代码,将绘图窗口尺寸置为1024*768,背景色为黄色,前景色为红色,在实验报告中给出完整的代码和对应的运行结果截图#include<graphics.h>#include<math.h>main(){int i,j,r,xx[20],yy[20],x0,y0;float st=360/20*3.14/180;x0=300;y0=250;r=200;initgraph(1024,768);setbkcolor(YELLOW);setcolor(RED);for(i=0;i<20;i++){ xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st); }for(i=0;i<20;i++){for(j=0;j<20;j++)line(xx[i],yy[i],xx[j],yy[j]);}getch();closegraph();}(2)修改1-1.cpp的代码,改变顶点个数,使得得到的图形更逼近于正圆,在实验报告中给出完整的代码和对应的运行结果截图#include<graphics.h>#include<math.h>main(){int i,j,r,xx[51],yy[51],x0,y0;float st=360.0/50*3.14/180;x0=300;y0=250;r=200;initgraph(800,600);setbkcolor(BLUE);setcolor(YELLOW);for(i=0;i<51;i++){ xx[i]=x0+r*cos(i*st);yy[i]=y0-r*sin(i*st); }for(i=0;i<50;i++)line(xx[i],yy[i],xx[i+1],yy[i+1]);getch();closegraph();}点向各分点绘直线。

用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、主要问题及解决方法✓抛物线的画法用插补法画抛物线。

真正实现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语言图形函数绘图

计算机图形学课程实验 报 告实验题目 利用C 语言图形函数绘图 班 级 姓 名 学 号 指导教师 日 期Computer GraphicsReport Of course experiment-图形学课程实验报告-- 1 -实验说明试验目的: 掌握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个正六边形的中心(即外接圆的圆心)在显示屏幕中心。

1.2实验目的和意义1. 了解如何利用C 语言和图形函数进行绘图;2. 熟悉并掌握C 语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;CB AR1R210图1利用C 语言图形函数绘图实验1如左图(一)所示:n=6 θ=100、N =1、R=R1、旋转一次。

依次类推,共旋转N 次。

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(),连接相邻两点,即形成一个正多边形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)试着自行设计一个动画或美术图案,并且上机编程实现。

相关文档
最新文档