二级C编程实训报告C语言图形函数绘图

合集下载

利用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程序绘图基础

C程序绘图基础

计算机图形学实验报告实验名称C程序绘图基础评分实验日期2012 年 5 月 4 日指导教师姓名专业班级计算机0902 学号200903010239一、实验目的1.掌握绘图时的步骤。

2.掌握C语言中的基本绘图函数及其用法。

(画圆函数circle( ),以及画线函数line(),自定义函数)3.掌握简单动画的实现方法。

二、实验要求1、编写一个正方形程序(每一个比前一个稍小),并在其中用不同颜色画15个正方形。

2、编写一辆自行车一公路上由右至左快速行驶的程序。

自行图案可自行设计。

三、用C语言编写绘画程序的主要步骤及绘图函数(一)、用C语言绘制图形的步骤1、为了调用C语言提供的图形库函数,在程序的开头写上文件的包含命令;# include <graphics.h>2、图形系统初始化及关闭图形方式初始化是通过调用 initgraph( )函数来完成,它的调用格式为:initgraph (* gdriver,* gmode,* path);该函数的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将显示器设置到指定图形方式下。

参数gdriver, gmode, path的含义参见教材的有关章节。

在运行图形程序结束后,又要回到文本方式,以进行其它工作,这时应关闭图形方式。

其格式为:closegraph( )。

3、图形显示器的工作方式文本模式与字符坐标系在未通过图形初始化之前的屏幕上,只能显示字符的方式称为文本模式。

CO(0,0)maxxmaxy语言能在指定位置显示字符,该坐标系以屏幕的左上角为坐标原点,水平向为x轴,自左向右;垂直方向为y轴,自上向下,坐标原点为(1,1)。

能显示的行数、列数及颜色与显示方式有关。

Turbo C支持6种不同的文本显示方式。

图形模式与点坐标系在屏幕上能显示图形的方式称为图形方式。

屏幕是由像素点组成的,通过initgraph函数的gmode参数来指定屏幕的分辨率,分辨率决定了像素点的多少。

利用C语言实现简单计算机图形

利用C语言实现简单计算机图形

利用C语言实现简单计算机图形计算机图形在现代计算机应用中起着重要的作用,可以用来实现各种效果和交互。

C语言作为一种广泛应用的编程语言,可以用来编写各种计算机图形程序。

本文将介绍利用C语言实现简单计算机图形的方法和技巧。

一、图形库的选择在使用C语言实现计算机图形时,我们需要选择一个合适的图形库来帮助我们进行图形的绘制和显示。

常用的图形库包括OpenGL、SDL、SFML等。

在选择图形库时,我们需要考虑到自己的需求以及所运行的平台,选择一个功能强大、易于使用的图形库。

二、绘制基本图形在开始实现图形程序之前,我们需要了解基本的图形绘制原理。

在C语言中,我们可以使用图形库提供的函数来实现各种图形的绘制。

比如,要绘制一个直线,我们可以使用线段绘制函数;要绘制一个圆形,我们可以使用圆形绘制函数。

通过调用相应的函数,我们可以实现各种基本图形的绘制。

三、实现图形效果除了基本图形的绘制,我们还可以利用C语言的一些特性来实现各种图形效果。

比如,我们可以使用循环语句和条件语句来实现动画效果;我们还可以使用数组和矩阵来处理图形的变换和旋转。

通过合理地运用这些特性,我们可以实现更加生动和复杂的图形效果。

四、键盘和鼠标事件实现计算机图形时,通常需要用户的输入来进行交互。

在C语言中,我们可以通过监听键盘和鼠标事件来实现用户的交互操作。

比如,我们可以通过监听键盘事件来控制图形的移动和变换;我们还可以通过监听鼠标事件来实现图形的选择和拖拽。

通过处理这些事件,我们可以实现更加灵活和交互的图形程序。

五、图形算法在实现计算机图形时,我们还需要了解一些常用的图形算法。

比如,直线的绘制可以使用Bresenham算法来实现,圆的绘制可以使用中点画圆算法来实现。

了解这些算法可以帮助我们更好地理解图形的绘制原理,并且优化我们的图形程序。

六、实例演示下面是一个使用C语言实现简单计算机图形的例子:```c#include <stdio.h>#include <graphics.h>int main(){int gd = DETECT, gm;initgraph(&gd, &gm, "");// 绘制一个直线line(100, 100, 200, 200);// 绘制一个矩形rectangle(300, 300, 400, 400);// 绘制一个圆形circle(500, 500, 50);// 绘制一个椭圆ellipse(600, 600, 0, 360, 100, 50);getch();closegraph();return 0;}```以上代码使用了BGI图形库来实现图形的绘制和显示。

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语言编程实训报告绘图

实验说明试验目的:掌握TurboC语言图形函数的使用和学会绘制一般图形。

试验地点:教九楼401 数学系机房实验要求(Direction):1. 每个学生单独完成;2.开发语言为TurboC或C++,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;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,以及中间圆所需的自定义填充模式m(1-A,2-C,3-D),设置画笔颜色,利用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个小圆,并用不同的颜色填充。

C语言如何实现画图教程

C语言如何实现画图教程

C语⾔如何实现画图教程 C语⾔有丰富的数据结构和运算符。

包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,⽤来实现各种数据结构的运算。

以下是店铺为⼤家搜索整理的C语⾔如何实现画图教程,希望能给⼤家带来帮助!更多精彩内容请及时关注我们应届毕业⽣考试⽹! 程序中定义了⼏个特殊键: "V”:画笔提起 "W”:开始画图 "R”:开始擦图 "S”:当前图形存⼊⽂件 "E”:调出已有⽂件 "C”:画圆 程序⼀运⾏,屏幕上出现⼀个黄⾊的`边框来设定画图的区域,区域中间出现提起的画笔符号,当按下”W“键时,画笔符号变为,此时可移动⽅向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下”R“键时,画笔符号变为,此时可移动⽅向键来擦图;在画图过程中,按下“C”键,可画出⼀个半径为20个象素点的圆;当结束画图时,按下“S”键,将画好的图形存盘;按下“E”键可调出已有的图形进⾏编辑。

3.源程序清单 # include "graphics.h" # include "stdio.h" # include "fcntl.h" # include "stdlib.h" main() void save(),load(); void *wg,*rg,*vg,*fy; int driver,mode; int c=RED; int x=320,y=225; int x1,y1,x2,y2; int k,k1,k2; /* initialize grapher */ detectgraph(&driver,&mode); initgraph(&driver,&mode,"c:\tc"); /* write the pen */ bar(200,10,206,16); line(203,7,200,10); line(203,7,206,10); line(243,7,240,16); line(243,7,246,16); line(283,7,280,10); line(283,7,286,10); line(283,7,283,16); /* save the pen */ wg=malloc(imagesize(200,7,206,16)); rg=malloc(imagesize(240,7,246,16)); vg=malloc(imagesize(280,7,286,16)); fy=malloc(imagesize(200,7,206,16)); getimage(200,7,206,16,wg); getimage(240,7,246,16,rg); getimage(280,7,286,16,vg); cleardevice(); /* write the box */ setcolor(YELLOW); rectangle(4,19,637,447); x1=x-3; y1=y+1; x2=x+3; y2=y+10; getimage(x1,y1,x2,y2,fy); putimage(x1,y1,vg,XOR_PUT); /* receive the command */ for (;;) while (bioskey(1)==0); k=bioskey(0); putimage(x1,y1,fy,AND_PUT); if (((k&0x00ff)|0x00)==0) k1=k&0xff?0:k>>8; /* k1 is the specialkey value */ else k2=k&0x00ff; /* k2 is the non-specialkey value */ if (((k&0x00ff)|0x00)==0) /* Special key */ switch(k1) case 45: restorecrtmode(); exit(0); case 72: if (y>20) case 75: if (x>5) x=x-1; break; case 77: if (x<636) x=x+1; break; case 80: if (y<446) y=y+1; break; case 71: if ((x>5)&&(y>20)) x=x-1; y=y-1; break; case 79: if ((x>5)&&(y<446)) x=x-1; y=y+1; break; case 73: if ((x<636)&&(y>20)) x=x+1; y=y-1; break; case 81: if ((x<636)&&(y<446)) x=x+1; y=y+1; break; x1=x-3; y1=y+1; x2=x+3; y2=y+10; getimage(x1,y1,x2,y2,fy); /* non-special key */ switch(k2) case 118: /* 'v' */ case 86: /* 'V' */ putimage(x1,y1,vg,OR_PUT); break; case 119: /* 'w' */ case 87: /* 'W' */ putimage(x1,y1,wg,OR_PUT); putpixel(x,y,c); break; case 114: /* 'r' */ case 82: /* 'R' */ putimage(x1,y1,rg,OR_PUT); putpixel(x,y,BLACK); break; case 115: /* 's' */ case 83: /* 'S' */ save("pic.dat"); break; case 101: /* 'e' */ case 69: /* 'E' */ load("pic.dat"); break; case 99: /*'c'*/ case 67: /*'C'*/ setcolor(RED); circle(x,y,20); break; default:continue; /* function for screen picture save */ void save(char *fname) register long j; char far *ptr; fp=fopen(fname,"wb"); for(i=0;i<4;i++) outportb(0x3CE,4); outportb(0x3CF,i); ptr=(char far *) 0xA0000000L; for (j=0;j<38400L;j++) putc(*ptr,fp); ptr++; fclose(fp); outportb(0x3CF,0); /* function for screen picture display */ void load(char *fname) FILE *fp; register int i; int k4=1; register long j; char far *ptr; fp=fopen(fname,"rb"); for (i=0;i<4;i++) outportb(0x3C4,2); outportb(0x3C5,k4); ptr=(char far *)0xA0000000L; for (j=0;j<38400L;j++) *ptr=getc(fp); ptr++; k4*=2; fclose(fp); outportb(0x3C5,0xF); 4.结束语 该程序在Turbo C 2.0环境下运⾏通过,使⽤效果良好。

C语言编程实训报告C语言绘图

C语言编程实训报告C语言绘图

天津电子信息职业技术学院暨国家示范性软件职业技术学院二级C编程实训报告姓名:系别:专业:班级:指导教师:邵慧娟完成时间:2013年1月11日C语言绘图前言C语言是在70年代初问世的。

一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。

同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。

通常简称为《K&R》,也有人称之为《K&R》标准。

但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。

通常称之为ANSI C。

很多编程语言都深受C语言的影响,比如C++(原先是C语言的一个扩展),C#,Java,PHP,Javascript,Perl,LPC和UNIX的C Shell。

也正因为C语言的影响力,掌握C语言的人,再学其它编程语言,大多能很快上手,触类旁通。

要学好一门编程语言,一定要边学边练,你要有一个C语言的开发工具,在此教程中,我们使用微软的Visual Studio开发C语言程序。

C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。

由于其高效和可移植性,适应于不同硬件和软件平台,深受开发员的青睐。

一个C语言源程序可以由一个或多个源文件组成,.每个源文件可由一个或多个函数组成。

一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。

源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面,每一个说明,每一个语句都必须以分号结尾,但是预处理命令,函数头和花括号“}”之后不能加分号,标识符,关键字之间必须至少加一个空格以示间隔。

若已有明显的间隔符,也可不再加空格来间隔。

利用VC编写简单的绘图程序

利用VC编写简单的绘图程序

利用VC编写简单的绘图程序上机实验环境亦可选择Microsoft Visual C++〔以下简称VC〕。

VC是美国微软公司生产的基于其Windows系统的软件开发工具。

它具有使用灵活,并与32位Windows内核〔使用于Windows 2000/Windows XP〕高度兼容的特点,从而被Windows程序员们广泛使用。

VC 在图形图像处理方面有着广泛的应用,MFC中提供了大量的图形图像函数,下面我们将对使用VC/MFC编写简单的绘图程序。

一、使用VC编写MFC单文档应用程序很简单,只需要按照下面几个步骤进行:1.翻开MSVC集成开发环境。

双击桌面或“开始〞菜单中的Microsoft VisualC++6.0,不久将看到VC的编辑窗口,如图3-5:图1 VC启动界面2.选择菜单“File | New〞,在弹出的对话框中1)单击上方的选项卡“Project〞,2)选择“MFC AppWizard(exe)〞,3)在“Project name〞一栏中填写工程名,例如draw,4)在“Location〞一栏中填写你想把文件存放的位置〔目录〕。

然后按“OK〞。

见图2。

注意:第4〕步中指定你自己的目录,不要使用系统的缺省目录或者随便放在根目录或者其他的目录下。

这样便于你找到自己编写的程序。

图2 应用程序向导主界面3.在MFC Appwizard-Step 1中选择“Single Document〞,即单文档应用程序,点击“Finish〞,如图3所示。

注意:对于下面的操作我们可以忽略,直接点Finish即可。

图3 应用程序向导中选择单文档视图4.系统弹出一个当前工程信息的对话框,如图4所示,直接点“OK〞即可。

图4 新建工程信息5.进入程序编写的主界面,屏幕左下方为工作区,如图5所示,工作区中共有三种视图,分别是:1)文件视图〔“FileView〞〕,主要包括头文件,cpp文件以及资源文件。

我们在头文件中一般添加类的定义,类的成员变量和函数的声明,而在cpp文件中具体实现函数。

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

-图形学课程实验报告-
-8-
break; } } getch(); closegraph(); }
2.5 运行结果图
实验题三
3.1 实验题目
自选题目:
(1)请编写一动画:绘制上述实验 2 中的图形,并要求: 1.让图案中的 12 个小圆按顺时针或逆时针方向不停地旋转; 2.半径为 R2=120 的小圆用黑色和实填充模式填充,并在小圆内绘制一些闪 烁的星星或者用不同的颜色和填充模式不停 地填充小圆,产生动画效果。
2.学会用自定义模式填充指定圆,并且用漫延填充方法填充; 3.学会用自定义图案来填充指定圆。
2.3 程序制作步骤
算法思想: 1.输入所要求环绕的小圆的个数 n,以及中间圆所需的自定义填充模式 m(1-A,
2-C,3-D),设置画笔颜色,利用 circle()画半径为 160 的大圆,然后画半径为 120 的小 圆并按照输入的模式 m 选择相应的填充模式。
case 1: setfillpattern(p1,9); circle(200,200,120); floodfill(200,200,6); break;
case 2: setfillpattern(p2,9); circle(200,200,120); floodfill(200,200,6); break;
1.自动搜索显示器类型和显示模式,初始化图形系统,通过 printf、scanf 语句控 制半径 r、边数 n、多边形的个数 k、边的每次旋转角度 d,的自由输入;
-图形学课程实验报告-
-1-
2.给定一内接圆半径 r,由圆内接多边形的算法公式:
x[i]=r*cos((i+1) *2.0*pi/n)+320.0 y[i]=240.0-r*sin(2.0*pi/n *(i+1)) 确定出多边形 N 的各个顶点坐标,然后利用划线函数 line(),连接相邻两点,即形成一 个正多边形。 3.根据边与角的关系,以及线段定比分点公式,可知旋转后的多Hale Waihona Puke 形的各个顶点 的坐标 。公式如下:
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;
/*角增量*/
R2 B
10
C R1
A
图1
1.2 实验目的和意义
如左图(一)所示:n=6 =100、N =1、R=R1、旋转一 次。依次类推,共旋转 N 次。
1. 了解如何利用 C 语言和图形函数进行绘图,同时熟练掌握 C++图形绘制环境;
2. 掌握 C 语言的图形模式控制函数,图形屏幕操作函数,以及基本图形函数;
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 角形,以便连续画线*/
(2)请编写一动画:实现实验 1 中的图形由大到小(由小到大)旋转的动态过程。 (3)编写一个描述一辆自行车在一公路上由左向右行驶的程序,运行效果图大致如图
-图形学课程实验报告-
-9-
三所示。 (4)试着自行设计一个动画或美术图案,并且上机编程实现。 (5)构造一种类似广告片效果,一幅或者多幅图形图像逐个显示出来,并配以文字说 明,颜色变化等。
b[j]=(int)(b[j]+(b[j+1]-b[j])/d);
}
a[n+1]=a[1];
b[n+1]=b[1];
-图形学课程实验报告-
-3-
} getch(); closegraph(); }
1.5 运行结果图
-图形学课程实验报告-
-4-
实验题二
2.1 实验题目
请绘 制一 个图:屏幕 中央有一个 半径为 R1=160 的大圆和 一个同心的且半 径为 R2=120 的小圆,同时在大圆和小圆中间均匀分布着 12 个与大圆和小圆相切的圆。如下 图 2 所示:
/*--------画 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);
case 3: setfillpattern(p3,9); circle(200,200,120); floodfill(200,200,6); break;
} while(!kbhit())
{ for(j=2;j<=n;j++) for(i=0;i<=n;i++)
-图形学课程实验报告-
-7-
{ 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);
天津电子信息职业技术学院 暨国家示范性软件职业技术学院
二级 C 编程实训报告
姓 名: 系 别: 专 业: 班 级: 指导教师: 完成时间: 2013 年 1 月 11 日
C 语言图形函数绘图
实验题一
1.1 实验题目
用如下图 1 所示,图中最大正 n 边形的外接圆半径为 R,旋转该正 n 边形,每次 旋转 角度,旋转后的的 n 边形顶点落在前一个正六边形的边上,共旋转 N 次,请上 机编程绘制 N+1 个外接圆半径逐渐缩小且旋转的正 n 边形。要求:(1) n、R、N、 要 求可以人为自由控制输入;(2)N+1 个正六边形的中心(即外接圆的圆心)在显示屏幕 中心。
程序代码:
/*----- 圆的填充------*/
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
#define pi 3.14159265
#define MAX 50
void main()
{
int graphdriver=DETECT,graphmode;
3. 通过对 Turbo C 进行图形程序设计的基本方法的学习,能绘制出简单的图形;
4. 通过绘制 N+1 个正 n 边形,了解图形系统初始化、图形系统关闭和图形模式的控制, 并熟练运用图形坐标的设置,包括定点、读取光标、读取 x 和 y 轴的最大值以及图 形颜色的设置。
1.3 程序制作步骤
算法思想:
要求:(1) 分别用 12 种不同的颜色和填充模式填充 12 个小圆;(2)用自定义模式 填充中间小圆,且用漫延填充方法填充;(3) 用自定义模式填充中间小圆时,填充模式 图案自己设计。例如,用字母 A 、字母 B、字母 C 填充图案可设计为:
2.2 实验目的和意义
1.学会运用画圆函数 circle(),图形填充函数包括:setfillstyle()、setfillpattern()以 及 floodfill()来填充圆;
要求:对于实验 3 中的 5 个小题,选择其中一个上机编程实现即可。
3.2 实验目的和意义
1. 描述一辆自行车在一公路上由右向左行驶; 2. 熟练掌握画圆函数 circle(),以及画线函数 line(),自定义填充函数 setfillstyle()等一 些简单的绘图函数。
-图形学课程实验报告-
-5-
2.利用圆内接多边形的算法,算出环绕小圆的各个圆心坐标,公式如下: x[i]=r*cos( (i+1) * 2.0*pi/n)+200.0 y[i]=200.0-r*sin( (i+1) * 2.0*pi/n)
以 20 为半径画环绕的 n 个小圆,并用不同的颜色填充。
2.4 主程序
1.4 主程序
程序代码:
/*----- 多边形的逐次旋转------*/ #include "stdio.h" #include "conio.h" #include "math.h" #include "graphics.h" #include "stdlib.h" #include "time.h" void main() {
/*自动搜索显示器类型和显示模式*/
double x[MAX],y[MAX];
int i,j,n,m;
double r,theta;
double sin(double),cos(double);
char p1[8]={(char)0x38,(char)0x6c,(char)0xc6,(char)0xc6,
相关文档
最新文档