用C语言实现画图程序.doc_第1页
用C语言实现画图程序.doc_第2页
用C语言实现画图程序.doc_第3页
用C语言实现画图程序.doc_第4页
用C语言实现画图程序.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

一、选题背景:画图程序,通过画图中的功能绘制出美丽的图案。二、设计思想:利用数学三角函数制作山峰和花朵出一条曲线、用画圆函数绘制太阳的形状、再进行颜色填充用绘制直线的函数来绘制比较粗的光线、用矩形函数画出矩形的边框、再画地球、直线画赤道、弧线画南北极和钟表的刻度盘。三、流程图 :开 始main()主函数调用图形库函数includegraphics.h调用数学函数()math.h调用标准I/O函数()stdio.h宏定义PI字符串()define PI 3.141596for循环输出图形结 束四、程序清单:#includegraphics.h /*调用图形库函数*/#includemath.h /*调用数学函数*/#includestdio.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); 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=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); /*绘制地球(椭圆)*/ setcolor(10); setlinestyle(0,0,1); 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、 主要问题及解决方法 抛物线的画法用插补法画抛物线。 调色

温馨提示

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

评论

0/150

提交评论