- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
武汉理工大学-c图形学实验报告-中国好学长系列之小灰灰的爸爸
学 号 成 绩
《计算机图形学基础》大作业
课 程 名 称 计算机图形学基础 开 课 学 院 计算机科学与技术学院 指导教师姓名 佘名高 学 生 姓 名 小灰灰的爸爸 学生专业班级 中国好学长系列
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.05;
Sleep(50);
cleardevice();
}
文档评论(0)