图形学教案.ppt

上传人:石*** 文档编号:84133763 上传时间:2023-04-02 格式:PPT 页数:32 大小:1.75MB
返回 下载 相关 举报
图形学教案.ppt_第1页
第1页 / 共32页
图形学教案.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《图形学教案.ppt》由会员分享,可在线阅读,更多相关《图形学教案.ppt(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、图形学教案现在学习的是第1页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学屏幕坐标系是一个左手系,屏幕左上角为坐标系屏幕坐标系是一个左手系,屏幕左上角为坐标系的原点(的原点(0,0),水平方向为),水平方向为X轴,自左向右;垂直方轴,自左向右;垂直方向为向为Y轴,自上而下。坐标范围与显示器的分辨率有轴,自上而下。坐标范围与显示器的分辨率有关,例如,当分辨率为关,例如,当分辨率为640480时,左上角坐标为(时,左上角坐标为(0,0),右下角坐标为(),右下角坐标为(639,479)。)。有了计算机基本图形设备,再配上高级语言(如有了计算机基本图形设备,再配

2、上高级语言(如Trubo C),就可以进行图形的绘制工作。),就可以进行图形的绘制工作。(0,0)XY现在学习的是第2页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学一、图形初始化及应用设置函数一、图形初始化及应用设置函数因为在文本方式下不能显示图形,所有的图形函数均不能因为在文本方式下不能显示图形,所有的图形函数均不能操作,因此在使用图形函数进行绘图之前,必须将显示适配器设操作,因此在使用图形函数进行绘图之前,必须将显示适配器设置为图形模式,即通常所说的置为图形模式,即通常所说的“图形模式初始化图形模式初始化”。在绘图结束。在绘图结束之后,又要让适配器的

3、设置回到文本模式。之后,又要让适配器的设置回到文本模式。Turbo C提供了提供了14个个函数,进行图形系统的控制和管理工作。最常见的两个函数,进行图形系统的控制和管理工作。最常见的两个函数是:函数是:现在学习的是第3页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学1、初始化图形系统函数、初始化图形系统函数void far initgraph(gdrive,gmode,gpath)int far*gdrive,*gmode,*gpath;gdrive:图形驱动器代号,gmode:图形模式代号,gpath:图形驱动程序路径。如:常用方式:int gdrive

4、,gmode;gdrive=DETECT;initgraph(&gdrive,&gmode,“d:tc”);现在学习的是第4页,共32页2、释放图形系统所分配的内存、恢复屏幕原显示模式、释放图形系统所分配的内存、恢复屏幕原显示模式函数函数void far closegraph(void)调用形式:closegraph();安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学现在学习的是第5页,共32页二、屏幕管理函数二、屏幕管理函数 Turbo C提供了提供了11个函数,用于对屏幕和视区的控制个函数,用于对屏幕和视区的控制和管理。和管理。1、擦除整个图形屏幕,并将、擦除整

5、个图形屏幕,并将cp(当前位置)移到原点(当前位置)移到原点(0,0)void far cleardevice(void)2、建立视区、建立视区 void setviewport(x1,y1,x2,y2)安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学现在学习的是第6页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学3、清除视图区、清除视图区清除视图区用函数清除视图区用函数clearviewport。它的作用是清除掉当前的。它的作用是清除掉当前的视图区,将当前点的位置重新设置为屏幕左上角(视图区,将当前点的位置重新设置为屏幕左上角(

6、0,0)。)。其调用格式为:其调用格式为:clearviewport();现在学习的是第7页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学三、常用的作图函数三、常用的作图函数1、画点函数、画点函数putpixel(int x,int y,int color)2、以当前颜色、线型、宽度画直线函数、以当前颜色、线型、宽度画直线函数void line(x0,y0,x,y)int x0,y0,x,y;从(x0,y0)画到(x,y)。3、以当前颜色、线型、宽度画直线函数、以当前颜色、线型、宽度画直线函数void far lineto(int x,int y)从当前点

7、(cp)画到(x,y)。现在学习的是第8页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学4、得到当前位置坐标函数、得到当前位置坐标函数(1)int far getx(void)返回x坐标(2)int far gety(void)返回y坐标5、以当前颜色、线型、线宽画一矩形函数、以当前颜色、线型、线宽画一矩形函数void far rectangle(left,top,right,bottom)int left,top,right,bottom;现在学习的是第9页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学6、以当前填充

8、模式、填充颜色画一矩形函数、以当前填充模式、填充颜色画一矩形函数void far bar(left,top,right,bottom)int left,top,right,bottom;7、以当前填充模式、填充颜色画一多边形函数、以当前填充模式、填充颜色画一多边形函数void far fillpoly(int num,int a )num:顶点数;a:存放各顶点坐标,共num*2个数;若是封闭的,则有num+1个点,有(num+1)*2个数。现在学习的是第10页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学8、以当前颜色、线型、线宽画圆函数、以当前颜色、线

9、型、线宽画圆函数void far circle(int x,int y,int radius)x,y:圆心坐标;radius:半径。9、以当前颜色、线型、线宽画椭圆弧函数、以当前颜色、线型、线宽画椭圆弧函数void far ellipse(x,y,stangle,endangle,xradius,yradius)int x,y,stangle,endangle,xradius,yradius;x,y:椭圆中心坐标;endangle,endangle:画椭圆的起始角和终止角。若endangle=0,endangle=360,则画一完整椭圆。xradius,yradius:为x、y方向的轴长半径。

10、现在学习的是第11页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学10、以当前颜色、线型、线宽及填充模式、填充颜色画扇、以当前颜色、线型、线宽及填充模式、填充颜色画扇形函数形函数void far piselice(x,y,stangle,endangle,radius)若stangle=0,endangle=360,则画一完整圆。现在学习的是第12页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学四、图形属性控制函数四、图形属性控制函数1、得到背景颜色数值函数、得到背景颜色数值函数int far getbkcolor(v

11、oid)常调用形式:oldbkcolor=getbkcolor();2、得到当前绘图颜色数值函数、得到当前绘图颜色数值函数int far getcolor(void)常调用形式:oldcolor=getcolor();现在学习的是第13页,共32页3、设置背景颜色函数、设置背景颜色函数void far setbkcolor(int color)调用形式如:setbkcolor(BLUE);(兰色背景)4、设置当前绘图颜色函数、设置当前绘图颜色函数void far setcolor(int color)调用形式如:setcolor(RED);(红色绘图颜色)5、获得最大颜色数函数、获得最大颜色数

12、函数int far getmaxcolor(void)调用形式如:maxclor=getmaxcolor();安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学现在学习的是第14页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学关于颜色值、符号常量与颜色的对应关系关于颜色值、符号常量与颜色的对应关系符号常量 数值颜色BLACK 0 BLUE 1 GREEN 2CYAN 3 青RED 4 MAGENTA 5 品红BROWN 6 棕色现在学习的是第15页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学L

13、IGHTGRAY 7 灰白DARKGRAY 8 灰LIGHTBLUE 9 LIGHTGREEN 10 LIGHTCYAN 11 浅青LIGHTRED 12 LIGHTMAGENTA 13 浅品红(淡紫色)YELLOW 14 WHITE 15 现在学习的是第16页,共32页#includegraphics.h“/*hhj01.c*/main()int gdriver=DETECT,gmode;int i,y=0;initgraph(&gdriver,&gmode,d:turboc2);for(i=0;i16;i+)setcolor(i);line(10,10+y,100,10+y);y+=5;g

14、etch();closegraph();例例1、用、用16种不同的颜色显示种不同的颜色显示16条不同的线段。条不同的线段。现在学习的是第17页,共32页例、用直线生成(直纹)曲面#includegraphics.h“/*pattern.c*/main()int y;long x;int gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,d:turboc2);cleardevice();setbkcolor(9);setcolor(4);for(y=0;y=240;y+=5)x=320/240*y;line(0,y,x,240);getch();clo

15、segraph();现在学习的是第18页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学6、设置画线宽度和线型的函数、设置画线宽度和线型的函数void far setlinestyle(linestyle,upattern,thickness)int linestyle,thickness;unsigned upattern;linestyle(线型线型)取值,取值,0:实线,:实线,1:点,:点,2:长短,:长短,3:长虚线,:长虚线,4:自定义线型。:自定义线型。thickness(宽度宽度)取值取值:1、3。upattern:当:当linestyle为

16、为4时起作用。其他时起作用。其他4种预定义情况可取种预定义情况可取0。现在学习的是第19页,共32页/*line_style01.c*/#includegraphics.hmain()int i,y=0,gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,d:turboc2);for(i=0;i4;i+)setcolor(i+1);setlinestyle(i,0,1);line(10,100+y,100,100+y);y+=5;getch();closegraph();例、显示例、显示turbo c固有的画线模式。固有的画线模式。现在学习的是第20页

17、,共32页/*line_style02.c*/#includegraphics.hmain()int gdriver=DETECT,gmode;unsigned upattern=0XEBAE;initgraph(&gdriver,&gmode,d:turboc2);setcolor(1);setlinestyle(4,upattern,3);rectangle(100,100,300,300);getch();closegraph();安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学例、用自定义线形画线。例、用自定义线形画线。现在学习的是第21页,共32页安徽师范大

18、学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学7、设置着色(填充)模式和颜色函数、设置着色(填充)模式和颜色函数void far setfillstyle(int pattern,int color)pattern(着色模式)取值:0:用背景颜色填充,1:用纯色填充,212:用各种线型和色点填充。color:填充颜色。8、填充封闭区域函数、填充封闭区域函数void far floodfill(x,y,color)int x,y,color;x,y:填充封闭区域中的一点;color:封闭区域的边界颜色。现在学习的是第22页,共32页/*bar3d.c*/#includegrap

19、hics.h“main()int gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,d:turboc2);setcolor(3);setfillstyle(7,1);bar(200,200,300,300);getch();closegraph();安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学现在学习的是第23页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学#includegraphics.hmain()int i,gdriver=DETECT,gmode;initgraph(&gd

20、river,&gmode,d:turboc2);setfillpattern(8,RED);setcolor(YELLOW);circle(200,200,100);floodfill(200,200,YELLOW);/*pattern.c*/getch();closegraph();现在学习的是第24页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学9、设置用户自定义的填充模式、设置用户自定义的填充模式void setfillpattern(char*upattern,int color);其中,其中,upattern是指针,指向是指针,指向8个字节,组成

21、用户定义的个字节,组成用户定义的88点阵图样式。每个字节的点阵图样式。每个字节的8个二进制表示水平个二进制表示水平8点,点,8字字节表示节表示8行,然后以此模型向整个封闭区域填充。行,然后以此模型向整个封闭区域填充。现在学习的是第25页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学char upattern8=0 x00,0 x24,0 x7e,0 x3c,0 x3c,0 x7e,0 x24,0 x00;#includegraphics.hmain()int i,gdriver=DETECT,gmode;initgraph(&gdriver,&gmode,

22、d:turboc2);setfillpattern(upattern,RED);setcolor(YELLOW);circle(200,200,100);floodfill(200,200,YELLOW);/*pattern.c*/getch();closegraph();例、用例、用setfillpattern()函数设置用户自定义的填图模式。函数设置用户自定义的填图模式。现在学习的是第26页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学五、图形方式下的文本五、图形方式下的文本1、设置正文字形、显示方向、字符大小函数、设置正文字形、显示方向、字符大小函数

23、void far settextstyle(font,direction,charsize)int font,direction,charsize;font(字形)取值,0:8*8字形,1:3倍笔划字形,2:小号笔划字形,3:无衬线笔划字形,4:黑体笔划字形。direction(显示方向)取值,值,0:自左向右,1:由底向上。charsize(字符放大因子)取值,0:用户自定义,1:8*8大小,2:16*16大小,。最大为10倍。说明:该函数影响outtext()和outtextxy()两个函数。现在学习的是第27页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机

24、图形学2、用当前对齐方式、字形、方向、大小在屏幕上(、用当前对齐方式、字形、方向、大小在屏幕上(x,y)显示字符串函数显示字符串函数void far outtextxy(x,y,textstring)int x,y;char*textstring;(为字符串指针,不能是汉字)3、用当前对齐方式、字形、方向、大小在屏幕上当前位置、用当前对齐方式、字形、方向、大小在屏幕上当前位置(cp)显示字符串函数)显示字符串函数void far outtext(textstring)char*textstring;(为字符串指针,不能是汉字)现在学习的是第28页,共32页安徽师范大学数学计算机科学学院安徽师范

25、大学数学计算机科学学院 计算机图形学三、字符屏幕控制函数三、字符屏幕控制函数(包含在(包含在conio.h头文件中)头文件中)1、清除屏幕并将光标移到左上角函数、清除屏幕并将光标移到左上角函数void clrscr(void)2、设置背景颜色函数、设置背景颜色函数void textbackground(int color)3、设置前景字符颜色函数、设置前景字符颜色函数void textcolor(int color)现在学习的是第29页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学4、将光标移到指定位置函数、将光标移到指定位置函数void gotoxy(i

26、nt x,int y)5、获得光标位置函数、获得光标位置函数(1)int wherex(void),(2)int wherey(void)6、向屏幕写字符函数、向屏幕写字符函数printf(“%s%c”,变量表),puts(字符串)现在学习的是第30页,共32页 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学本章思考题1、编写程序,用、编写程序,用turbo c固有的画线模式显示固有的画线模式显示4条平行线。条平行线。2、编写程序,用、编写程序,用16种不同的颜色显示种不同的颜色显示16条不同的线段。条不

27、同的线段。3、用用setlinestyle()setlinestyle()函数定义如图所示的线型,并编程用该线型函数定义如图所示的线型,并编程用该线型绘制一条直线段。绘制一条直线段。现在学习的是第31页,共32页安徽师范大学数学计算机科学学院安徽师范大学数学计算机科学学院 计算机图形学本章思考题4、编写程序,用编写程序,用Turbo CTurbo C的的setfillpattern()setfillpattern()函数将如下定义的位函数将如下定义的位图填充到一个圆心在(图填充到一个圆心在(150,150150,150),半径为半径为100100的圆中(假设圆的边的圆中(假设圆的边界色为黄色)。界色为黄色)。0000000000100100011111100010010000100100011111100010010000000000现在学习的是第32页,共32页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com