C语言编程实训报告绘图

C语言编程实训报告绘图

ID:37919248

大小:19.50 KB

页数:3页

时间:2019-06-02

C语言编程实训报告绘图_第1页
C语言编程实训报告绘图_第2页
C语言编程实训报告绘图_第3页
资源描述:

《C语言编程实训报告绘图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验说明  试验目的:掌握TurboC语言图形函数的使用和学会绘制一般图形。  试验地点:教九楼401数学系机房  实验要求(Direction):1.每个学生单独完成;2.开发语言为TurboC或C++,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5.自己保留一份可执行程序,考试前统一检查和上交。实验内容实验题一实验题二2.1实验题目  请绘制一个图:屏幕中央有一个半径为R1=160的大圆和一个同心的且半径为R2=

2、120的小圆,同时在大圆和小圆中间均匀分布着12个与大圆和小圆相切的圆。如下图2所示:   要求:(1)分别用12种不同的颜色和填充模式填充12个小圆;(2)用自定义模式填充中间小圆,且用漫延填充方法填充;(3)用自定义模式填充中间小圆时,填充模式图案自己设计。例如,用字母A、字母B、字母C填充图案可设计为:2.2实验目的和意义   1.学会运用画圆函数circle(),图形填充函数包括:setfillstyle()、setfillpattern()以及floodfill()来填充圆;   2.学会用自定义模式填充指定圆,并且用漫延

3、填充方法填充;   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.0   y[i]=200.0-r*sin((i+1)*2.0*pi/

4、n)以20为半径画环绕的n个小圆,并用不同的颜色填充。2.4主程序程序代码:/*-----圆的填充------*/#include"stdio.h"#include"conio.h"#include"math.h"#include"graphics.h"#definepi3.14159265#defineMAX50voidmain(){intgraphdriver=DETECT,graphmode;/*自动搜索显示器类型和显示模式*/doublex[MAX],y[MAX];inti,j,n,m;doubler,theta;doubl

5、esin(double),cos(double);charp1[8]={(char)0x38,(char)0x6c,(char)0xc6,(char)0xc6,(char)0xff,(char)0xc6,(char)0xc6,(char)0x00};charp2[8]={(char)0x36,(char)0x7e,(char)0x66,(char)0x60,(char)0x60,(char)0x66,(char)0x7e,(char)0x3c};charp3[8]={(char)0xf0,(char)0xf8,(char)0x9c,

6、(char)0x8c,(char)0x8c,(char)0x9c,(char)0xf8,(char)0xf8};r=160.0;printf("pleaseinputthenumbleofN=");scanf("%d",&n);printf("(1-A,2-C,3-D)pleaseinputthenumbleofm=");scanf("%d",&m);initgraph(&graphdriver,&graphmode,"D:\TC");/*初始化图形系统*/theta=2.0*pi/n;setcolor(3);circle(200

7、,200,200);setcolor(6);setfillstyle(12,0);switch(m){case1:setfillpattern(p1,9);circle(200,200,120);floodfill(200,200,6);break;case2:setfillpattern(p2,9);circle(200,200,120);floodfill(200,200,6);break;case3:setfillpattern(p3,9);circle(200,200,120);floodfill(200,200,6);br

8、eak;}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));s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。