武汉理工大学-c图形学实验报告-中国好学长系列之小灰灰的爸爸.docVIP

  • 20
  • 0
  • 约2.21千字
  • 约 13页
  • 2018-12-29 发布于湖北
  • 举报

武汉理工大学-c图形学实验报告-中国好学长系列之小灰灰的爸爸.doc

PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 0 学 号 成 绩 《计算机图形学基础》大作业 课 程 名 称 计算机图形学基础 开 课 学 院 计算机科学与技术学院 指导教师姓名 佘名高 学 生 姓 名 小灰灰的爸爸 学生专业班级 中国好学长系列 2013-2014 学年 第 一 学期 一、根据Bresenham直线绘制算法,实现直线的绘制。 1.基本论述 2.算法 3.程序源代码 #include graphics.h #include conio.h #include math.h #include iostream.h void main() { int gd=DETECT,gm; initgraph(gd,gm,); cleardevice(); int x,y; int X,Y; int x1=10,y1=10; int x2=500,y2=500; int dx=fabs(x2-x1),dy=fabs(y2-y1); int d=2*dy-dx; if (x1x2) { x=x2; y=y2; X=x1; Y=y1; } else { x=x1; y=y1; X=x2; Y=y2; } while (xX) { x=x+1; if(d0) d=d+2*dy; else { y=y+1; d=d+2*(dy-dx); } putpixel(x,y,WHITE); } getch(); closegraph(); } 4.程序运行截图 小结 二、用C语言编写:画y=sin(x)的图形(要求画出[-2π,2π]的图形及笛卡尔坐标) 1.基本论述 2.算法 3.程序源代码 #includeiostream.h #includegraphics.h #includemath.h #includeconio.h void main() { int gd=DETECT,gm; initgraph(gd,gm,); cleardevice(); float x,y,del,d; int a,b; a=getmaxx()/2; b=getmaxy()/2; line(a,0,a-10,10); line(a,0,a+10,10); line(2*a,b,2*a-10,b-10); line(2*a,b,2*a-10,b+10); line(0,b,2*a,b); line(a,0,a,2*b); outtextxy(a+5,b+5,0); outtextxy(2*a-15,b+5,x); outtextxy(a+5,15,y); outtextxy(a+20*3.14-10,b+5,π/2); outtextxy(a+40*3.14-5,b+5,π); outtextxy(a+60*3.14-15,b+5,3π/2); outtextxy(a+80*3.14-10,b+5,2π); outtextxy(a-20*3.14-10,b+5,-π/2); outtextxy(a-40*3.14-10,b+5,-π); outtextxy(a-60*3.14-15,b+5,-3π/2); outtextxy(a-80*3.14-10,b+5,-2π); outtextxy(a-10,b-90,1); outtextxy(a-10,b-180,2); outtextxy(a-15,b+90,-1); d=2*3.1416; del=0.001; for(x=-d;x=d;x+=del) { y=sin(x); putpixel(x*40+a,-y*80+b,WHITE); } getch(); closegraph(); } 4.程序运行截图 5.小结 三、用C语言编写一个小圆沿着大圆运动的程序。 1.基本论述 2.算法 3.程序源代码 #includeiostream.h #includegraphics.h #includeconio.h #includemath.h void main() { int gd=DETECT,gm; initgraph(gd,gm,); cleardevice(); float x=0; int l=getmaxx()/2; int h=getmaxy()/2; for(;;) { circle(l,h,100); circle(l+100*cos(x),h+100*sin(x),30); x+=0.

文档评论(0)

1亿VIP精品文档

相关文档