ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:801.65KB ,
资源ID:20743799      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20743799.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机图形学实验作业Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机图形学实验作业Word格式.docx

1、能显示的行数、列数及颜色与显示方式有关。Turbo C支持6种不同的文本显示方式。2) 图形模式与点坐标系在屏幕上能显示图形的方式称为图形方式。屏幕是由像素点组成的,通过initgraph函数的gmode参数来指定屏幕的分辨率,分辨率决定了像素点的多少。在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。在该坐标系中,屏幕的左上角为坐标原点O(0,0),水平向为x轴,自左向右;垂直方向为y轴,自上向下。如图1-1所示。分辨率不同,水平方向和垂直方向上的点数也不一样,即其maxx、maxy的数值不同。在Turbo C中,坐标数据有两种形式给出:一种是绝对坐标;另一种是相对坐标。绝对坐标的参考

2、点是坐标的原点O(0,0),x 和y的值只能取规定范围内的正整数,其坐标值在整个屏幕范围内确定。相对坐标是相对于“当前点”的坐标,所以其参考点不是坐标系的原点,而是当前点。要相对坐标中,x和y的取值是相对于当前点在X方向和Y方向上的增量,这个增量可以是正的,也可以是负的,所以x和y的值可以是正整数,也可以是负整数。此外,把在一个窗口范围内确定的坐标也称为相对坐标。(二) C语言中的基本绘图函数及其用法:1、绘图函数在用绘图函数作图时,有的绘图函数坐标是相对于坐标原点,用绝对坐标。有的绘图函数用相对坐标,这时要随时注意图形的“当前点位置”,它是绘图的起始位置。也就是说,图形总是从当前点开始画图。

3、画完一个图形后,有的当前点不变,仍在原来的位置;而有时会移到新的位置。1) 直线类绘图函数用直线类函数绘制直线图形,可以用两种坐标:几个常用的函数: 点的绝对定位函数 moveto(x,y) 点的相对定位函数 moverel(deltayx,deltay)它们不绘制图形,只改变当前点的位置,接着用绘图函数绘图。 指定两个绝对点绘直线函数: line(x1,y1,x2,y2) 该函数不改变当前点的位置。 从当前点到指定的绝对点绘直线函数: lineto(x,y) 该函数画线的同时,将当前点的位置移到(x,y)。 从当前点到指定的相对点绘直线函数: linerel(dx,dy) 该函数画线的同时,

4、将当前点的位置移到(x+dx,y+dy)。设当前坐标为(x,y)则linerel(dx,dy)与lineto(x+dx,y+dy)等价。 读取当前点的位置x,y函数分别为: getx(void),gety(void) 读取x,y轴的最大值函数分别为:getmaxx(void),getmaxy(void)2) 多边形类绘图函数1 画矩形函数 rectangle(x1,y1,x2,y2);2 画多边形函数:drawpoly(n ,* polypoints)其中参数,n为多边形数;* polypoints 指向一个整形数组,共有2n 个整数组成,每对整数给出了一个多边形顶点(x,y)坐标。2、图形属

5、性的设置图形属性的设置包括绘制该图形所用的颜色和线型。颜色又分为背景色和前景色:背景色指的是屏幕的颜色,即绘图时的底色;前景是指绘图时图形线条所用的颜色。背景色和前景色的设置,只对设置后所绘制的颜色和线型有作用,对已经绘制的图形无作用。1) 设置前景色设置前景颜色所用的函数 setcolor。其调用格式为:setcolor(color);其中color为一个整型数值,代表所取的颜色。2) 设置背景色设置背景颜色所用的函数 sebktcolor。setbkcolor(color);3)设置线型设置当前绘图所用的线型和线宽,用函数 setlinestyle。线型和线宽的设置仅限于对直线类图形有效。

6、setlinestyle(sty,pat,b);sty:整型值,用来定义所画直线的类型;pat用户定义线型使用; b整型值,用来定义定义所画直线的线宽。在屏幕上绘制出各种简单的几何图形,要求设置不同的线形和颜色。3、 填充填空是指用指定的模式和颜色来填空一个指定的封闭区域。1) 设置当前的填充模式和颜色设置填充模式和颜色,用函数setfillstyle,其调用格式为:setfillstyle(pattern,color);2) 实施填充对于指定的一块有界的封闭区域进行填充操作,用函数floodfill,其调用格式为:floodfill(x,y,bcolor);参数(x,y)指位于填充区域内任意

7、一点的坐标,该点作为填充的起始点,参数bcolor作为填充区域的边界颜色。如果起始点在封闭区域内,则区域内部被填充;如果起始点在封闭区域外,则区域外部被填充。同学们可以自行验证。3) 其它填充函数以下几个填充函数,均须事先由setfillstyle 函数指定当前的填充模式和颜色。 绘制并填充实椭圆函数: fillellipse(x,y,rx,ry); 绘制并填充实椭圆扇区函数: sector(x,y,angs,ange,rx,ry) 绘制并填充多边形函数:fillpoly(nps ,*pxy)4、 屏幕管理Turbo C2.0 提供了11个函数,用于对屏幕和视区进行管理。1)设置视图区在图形方

8、式下,可用函数setviewport在屏幕上定义一个视图区。视图区相当于一个用于绘图的窗口。视图区的位置和大小用屏幕的绝对坐标定义,并且可把视图区设置为裁剪和不裁剪两种状态。函数setviewport的调用格式为:setviewport(x1,y1,x2,y2,c);参数x1,y1:为视图区矩形的左上角顶点坐标;x2,y2:为视图区矩形的右下角顶点坐标。c为裁剪状态参数。c=1,超出视图区的图形部分被自动裁剪掉;c=0时,对超出部分不作裁剪处理。应注意:视图区建立以后,所有的图形输出坐标都是相对于当前视图区的,即视图区左上角点为坐标(0,0)点,而与视图区和图形在屏幕上的位置无关。在默认情况下

9、,整个屏幕为一个视图区。2)清除视图区清除视图区用函数 clearviewport。它的作用是清除掉当前视图区,将当前点的位置设置于屏幕左上角(0,0)点。调用格式为:clearviewport();3)清屏清屏的函数为 cleardevice ();四、程序调试中的问题在Options中directories分别把改到TC安装路径下:到经过修改合适。基本都是路径有错误,修改之后就合适。五、程序运行结果或数据1、金刚石图案2、肾形图案3、正方形图案5、 人在公路上行走5、正多边形图案六、实验收获及体会1)可以充分运用Turbo C2.0,我们对Turbo C的环境更加熟悉,也对计算机图形学里涉

10、及的函数有一个更深的理解。2)在Turbo C2.0中编写,要求的程序,并且调试错误;3)将Turbo C2.0中出现的错误,改正过来,从中了解并且知道Turbo C2.0中相关程序。4)在Turbo C2.0出现的问题一一纠正,了解并且绘制出自己想要的图案,按要求绘制相关图案;5)将Turbo C2.0熟练的运用,掌握相关的技巧;6)可以对C语言的进一步认识,熟悉掌握相关的知识;7)对C语言初步了解,还待提高。七、参考源程序(可附页)1、金刚石图案的程序#includemain()float t;int x0=320,y0=240;int n,i,j,r,x50,y50;int gdrive

11、r=DETECT,gmode;printf(input n(23-31)and r(100-200)n);scanf(%d,%d,&n,&r);initgraph(&gdriver,&gmode,C:tccleardevice();setbkcolor(9);setcolor(4);t=6.28318/n;for(i=0;in;i+)xi=r*cos(i*t)+x0;yi=r*sin(i*t)+y0;=n-2;for(j=i+1;j=n-1;j+)line(xi,yi,xj,yj);getch();closegraph();2、肾形图案相关程序#define PI 3.1415926 int

12、x,y,r,r1;double a;int gdriver=9,gmode=2;d:input radus(150)n%dsetbkcolor(MAGENTA);setcolor(WHITE);for(a=0;a2*PI;a+=PI/27)x=r*cos(a)+320;y=r*sin(a)+240; r1=abs(x-320);circle(x,y,r1); getch(); 3、一个正方形程序void main(void)int gdriver=DETECT,gmode,errorcode;int i,c,x=5,y=6;input color number:nc);TCsetbkcolor

13、(14);setcolor(9);for(i=c;c+8;setcolor(i);rectangle(x,y,x+140,y+104);x=x+70;y=y+52;setfillstyle(1,i);floodfill(x,y,i);4、人在公路上行走#include stdio.hstdlib.hdos.hvoid t1(int x1,int x,int y) line(0,y/2+72,x,y/2+72); circle(x1,y/2,10); line(x1,y/2+10,x1-5,y/2+38); line(x1-5,y/2+38,x1+5,y/2+52); line(x1+5,y/2

14、+52,x1-12,y/2+65); line(x1-5,y/2+38,x1,y/2+54); line(x1,y/2+54,x1-8,y/2+70); line(x1-8,y/2+10,x1-8,y/2+35); line(x1,y/2+10,x1+1,y/2+25); line(x1+1,y/2+25,x1+10,y/2+32); void t2(int x1,int x,int y) circle(x1+40,y/2,10); line(x1+40,y/2+10,x1+28,y/2+50); line(x1+28,y/2+52,x1+11,y/2+47); line(x1+30,y/2+

15、40,x1+52,y/2+50); line(x1+52,y/2+50,x1+42,y/2+70); line(x1+39,y/2+11,x1+24,y/2+22); line(x1+24,y/2+22,x1+34,y/2+32); line(x1+39,y/2+11,x1+45,y/2+30); line(x1+45,y/2+30,x1+58,y/2+24); int gdriver=DETECT,gmode,errorcode; int x,y,x1; int buf13000,buf24000; initgraph(&E:TC x=getmaxx();y=getmaxy(); x1=12; while(!kbhit() sound(200); while(x1+58x) t1(x1,x,y); delay(4500); cleardevice(); t2(x1,x,y); x1=x1+50; nosound(); closegraph();5、正多边形绘图程序include void polygon(int x0,int y0,int a ,int n, float af) int x,y,i,x2,y2; float dtheta,theta; if(n=3;i-) polygon(x,y,a,i,0.0);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1