- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序绘图基础
计算机图形学实验报告
实验名称 C程序绘图基础 评分
实验日期 2012 年 5 月 4 日 指导教师
姓名 专业班级 计算机0902 学号 200903010239
一、实验目的
1.掌握绘图时的步骤。
2.掌握C语言中的基本绘图函数及其用法。(画圆函数circle( ),以及画线函数line(),自定义函数)
3.掌握简单动画的实现方法。
二、实验要求
1、编写一个正方形程序(每一个比前一个稍小),并在其中用不同颜色画15个正方形。
2、编写一辆自行车一公路上由右至左快速行驶的程序。自行图案可自行设计。
三、用C语言编写绘画程序的主要步骤及绘图函数
(一)、用C语言绘制图形的步骤
1、为了调用C语言提供的图形库函数,在程序的开头写上文件的包含命令;
# include graphics.h
2、图形系统初始化及关闭图形方式
初始化是通过调用 initgraph( )函数来完成 ,它的调用格式为:
initgraph (* gdriver,* gmode,* path);
该函数的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将显示器设置到指定图形方式下。参数gdriver, gmode, path的含义参见教材的有关章节。
在运行图形程序结束后,又要回到文本方式,以进行其它工作,这时应关闭图形方式。其格式为:closegraph( )。
3、图形显示器的工作方式
文本模式与字符坐标系
在未通过图形初始化之前的屏幕上,只能显示字符的方式称为文本模式。C语言能在指定位置显示字符,该坐标系以屏幕的左上角为坐标原点,水平向为x轴,自左向右;垂直方向为y轴,自上向下,坐标原点为(1,1)。能显示的行数、列数及颜色与显示方式有关。Turbo C支持6种不同的文本显示方式。
图形模式与点坐标系
在屏幕上能显示图形的方式称为图形方式。屏幕是由像素点组成的,通过initgraph函数的gmode参数来指定屏幕的分辨率,分辨率决定了像素点的多少。
在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。在该坐标系中,屏幕的左上角为坐标原点O(0,0),水平向为x轴,自左向右;垂直方向为y轴,自上向下。如图1-1所示。
分辨率不同,水平方向和垂直方向上的点数也不一样,即其maxx、maxy的数值不同。在Turbo C中,坐标数据有两种形式给出:一种是绝对坐标;另一种是相对坐标。绝对坐标的参考点是坐标的原点O(0,0),x 和y的值只能取规定范围内的正整数,其坐标值在整个屏幕范围内确定。相对坐标是相对于“当前点”的坐标,所以其参考点不是坐标系的原点,而是当前点。要相对坐标中,x和y的取值是相对于当前点在X方向和Y方向上的增量,这个增量可以是正的,也可以是负的,所以x和y的值可以是正整数,也可以是负整数。此外,把在一个窗口范围内确定的坐标也称为相对坐标。
(二)、C语言中的基本绘图函数及其用法
1、绘图函数
在用绘图函数作图时,有的绘图函数坐标是相对于坐标原点,用绝对坐标。有的绘图函数用相对坐标,这时要随时注意图形的“当前点位置”,它是绘图的起始位置。也就是说,图形总是从当前点开始画图。画完一个图形后,有的当前点不变,仍在原来的位置;而有时会移到新的位置。
1) 直线类绘图函数
用直线类函数绘制直线图形,可以用两种坐标:一种是绝对坐标;另一种是相对坐标。
几个常用的函数:
① 点的绝对定位函数 moveto(x,y)
② 点的相对定位函数 moverel(deltayx,deltay)
它们不绘制图形,只改变当前点的位置,接着用绘图函数绘图。
③ 指定两个绝对点绘直线函数:
line(x1,y1,x2,y2)
该函数不改变当前点的位置。
④ 从当前点到指定的绝对点绘直线函数: lineto(x,y)
该函数画线的同时,将当前点的位置移到(x,y)。
⑤ 从当前点到指定的相对点绘直线函数:linerel(dx,dy)
该函数画线的同时,将当前点的位置移到(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) 多边形类绘图函数
画矩形函数
文档评论(0)