C语言编程实训报告绘图.doc_第1页
C语言编程实训报告绘图.doc_第2页
C语言编程实训报告绘图.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验说明试验目的: 掌握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.利用圆内接多边形的算法,算出环绕小圆的各个圆心坐标,公式如下: xi=r*cos( (i+1) * 2.0*pi/n)+200.0 yi=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.14159265#define MAX 50void main() int graphdriver=DETECT,graphmode; /*自动搜索显示器类型和显示模式*/ double xMAX,yMAX; int i,j,n,m; double r,theta; double sin(double),cos(double); char p18=(char)0x38,(char)0x6c,(char)0xc6,(char)0xc6, (char)0xff,(char)0xc6,(char)0xc6,(char)0x00; char p28=(char)0x36,(char)0x7e,(char)0x66,(char)0x60, (char)0x60,(char)0x66,(char)0x7e,(char)0x3c; char p38=(char)0xf0,(char)0xf8,(char)0x9c,(char)0x8c, (char)0x8c,(char)0x9c,(char)0xf8,(char)0xf8; r=160.0; printf(please input the numble of N=); scanf(%d,&n); printf(1-A,2-C,3-D)please input the numble of m=); scanf(%d,&m); initgraph(&graphdriver,&graphmode,D:TC); /*初始化图形系统*/ theta=2.0*pi/n; setcolor(3); circle(200,200,200); setcolor(6); setfillstyle(12,0); switch(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; 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+) xi=r*cos(theta*(i+j)+200.0; yi=200.0-r*sin(theta*(i+j); setcolor(i); circle(int)xi,(int)yi,(int)40); setfillstyle(SOLID_FILL,i); floodfill(int)xi,(int)yi,i); delay(10000); cleardevice(); setcolor(3); circle(200,200,200); setcolor(6); setfillstyle(12,0); switch(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,20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论