资源描述:
《计算机图形学实验二报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机图形学课实验报告题目■■C程序绘图基础专业学生姓名班级学号指导教师指导单位日期C程序绘图基础X内容与目的内容:1.编写一辆自行车在一公路上由右至左快速行驶的程序。2.试自行设计一个美术图案,并且用程序实现。目的:1、掌握用TurboC绘图时的步骤。2、掌握C语言中的基本绘图函数及其用法。3、掌握简单动画的实现方法。二、基本设计思想1、为了调用C语言提供的图形库函数,在程序的开头写上文件的包含命令;#include2、图形系统初始化及关闭图形方式初始化是通过调用initgraph()函数来完成,它的调用格式为:initgraph(
2、*gdriver,*gmode,*path);该函数的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将显示器设置到指定图形方式下。参数gdriver,gmode,path的含义参见教材的有关章节。在运行图形程序结束后,又要回到文本方式,以进行其它工作,这时应关闭图形方式。其格式为:closegraph()。3、图形显示器的工作方式1)文木模式与字符坐标系在未通过图形初始化之前的屏幕上,只能显示字符的方式称为文本模式。C语言能在指定位置显示字符,该坐标系以屏幕的左上角为坐标原点,水平向为x轴,自左向右;垂直方向为y轴,自上向下,坐标原点为(1,1)
3、。能显示的行数、列数及颜色与显示方式有关。TurboC支持6种不同的文本显示方式。2)图形模式与点坐标系在屏幕上能显示图形的方式称为图形方式。屏幕是由像素点组成的,通过initgmph函数的gmodc参数來指定屏幕的分辨率,分辨率决定了像素点的多少。在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。在该坐标系中,屏幕的左上角为坐标原点0(0,0),水平向为x轴,自左向右;垂直方向为y轴,自上向下。如图1T所示。分辨率不同,水平方向和垂直方向上的点数也不一样,即其maxx>nmxy的数值不同。在TurboC屮,坐标数据有两种形式给出:一种是绝对坐标;另一
4、种是相对坐标。绝对坐标的参考点是坐标的原点0(0,0),x和y的值只能取规定范围内的正整数,其坐标值在整个屏幕范围内确定。相对坐标是相对于“当前点”的坐标,所以其参考点不是坐标系的原点,而是当前点。要相对坐标中,x和y的取值是相对于当前点在X方向和Y方向上的增量,这个增量可以是正的,也可以是负的,所以x和y的值可以是正整数,也可以是负整数。此外,把在一个窗口范圉内确定的坐标也称为相对坐标。maxx0(0,0)maxy三.程序流程实验一:编写一辆自行车在一公路上由右至左快速行驶的程序。1.自行车基本轮廓的绘制2.处于运动状态的自行车车轮的轴线的绘制3.自行车行
5、驶动画的实现4.处于静止状态的自行车车轮的轴线的绘制实验二:试自行设计一个美术图案,并且用程序实现。1.调用C语言提供的图形库函数2.图形系统初始化3.定义坐标值四、程序清单实验一:编写一辆自行车在一公路上由右至左快速行驶的程序。程序:#include,zstdlib・h"#include"graphics.h〃#include,zconio.h〃#include,zstdio.h〃voidgraph1(intx,inty,intradius){intsavex,savey,savexl,saveyl,save_x2,save_y2,save_x3,save
6、_y3,save_x4,save_y4;setcolor(BROWN);sctlincstylc(SOLID_LINE,0,100);line(0,y+20,getmaxx(),y+20);setcolor(WHITE);setlinestyle(SOLIDLINE,0,1);savc_x=x;save_y=y;circle(x,y,radius);save_xl二x+30;save_yl=y~40;sqvc_x2二x+60;save_y2=y;line(x,y,savexl,save_yl);line(x,y,save_x2,save_y2);line(x
7、,y,x+15,y+14);line(x,y,x+15,y-14);line(x,y,x-8,y-16);line(x,y,x~5,y+18);circle(save_x2,save_y2,5);save_x3=save_x2+60;savc_y3=savc_y2;circle(save_x3,save_y3,radius);save_x4二save_x2+30;save_y4=save_y3-40;line(save_x2,save_y2,save_x4,save_y4);line(savc_x3,savc_y3,savc_x4,savc_y4);line
8、(save_x2,save_y2~5,save_x3