urboC图形编程.ppt

上传人:小飞机 文档编号:5451766 上传时间:2023-07-08 格式:PPT 页数:21 大小:686KB
返回 下载 相关 举报
urboC图形编程.ppt_第1页
第1页 / 共21页
urboC图形编程.ppt_第2页
第2页 / 共21页
urboC图形编程.ppt_第3页
第3页 / 共21页
urboC图形编程.ppt_第4页
第4页 / 共21页
urboC图形编程.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《urboC图形编程.ppt》由会员分享,可在线阅读,更多相关《urboC图形编程.ppt(21页珍藏版)》请在三一办公上搜索。

1、Turbo C 图形编程,09级兴趣小组讲座,2023/7/8,1,一、C 图形编程图形界面生动、直观C语言功能强大(可直接写屏),支持多种显卡的各种显示模式,提供画点、线、曲线、填充等函数。二、用C还是C+?各有优势在工控、嵌入式设备、POS系统等常用C在PC上现在一般都用C+,2023/7/8,2,2023/7/8,3,2023/7/8,4,三、显示器及基本性能现在用VGA及以上的显示器分辨率达1024X768以上(高清)颜色达16位以上(24位即为真彩)四、Turbo C 支持的图形模式,2023/7/8,5,五、显示模式控制 在进行图形编程前需要先设置图形模式;如果不设置,则图形函数都

2、不能使用。图形函数的原型在graphics.h文件中。各类图形适配器都有符号常数及数值;使用中为了方便一般采用系统根据硬件测试结果自动装入相应的适配器,即使用的符号常数是:DETECT,数值为0。六、颜色设置设置颜色的函数有两个:setbkcolor(int color)设置背景色,默认0(黑色)setcolor(int color)设置前景色(画笔),默认15(白色)此外,可以用调色板函数(setpalette)自己调色。,2023/7/8,6,设置颜色示例(myg2.c),#include main()int graphdriver=DETECT,graphmode;initgraph(,

3、2023/7/8,7,七、图形模式下的屏幕坐标 左上角为(0,0);X轴从左到右(0最大水平分辨率);Y轴从上到下(0最大垂直分辨率)。八、笛卡尔坐标与屏幕坐标的转换 笛卡尔坐标系的原点(0,0)是中心位置,所以绘图时常常将笛卡尔坐标转换为屏幕坐标,转换公式:屏幕(X,Y)=(X笛卡尔+maxxres/2,maxyres/2-Y笛卡尔),2023/7/8,8,坐标变换示例(myg0.c),#define maxxres 640#define maxyres 480#include#include void main()int i,x,y,dikax=0,dikay=0;int graphdri

4、ver=DETECT,graphmode;initgraph(,2023/7/8,9,九、Turbo C环境配置 C源程序编译后链接时需要图形库文件graphics.lib;有些安装版本没有将该库文件连接入模式库中。如果没有,则需要自己用TLIB命令进行连接,进入Turbo C安装目录;执行:tlib cs+libgraphics.libtlib cc+libgraphics.libtlib cm+libgraphics.libtlib ch+libgraphics.libtlib cl+libgraphics.lib,2023/7/8,10,十、程序框架了解相关的概念后,需要掌握C图形编程的

5、框架结构(这个框架可以作为模版)。#include main()int graphdriver=DETECT,graphmode;initgraph(,2023/7/8,11,#include 图形函数的头文件int graphdriver=DETECT,graphmode;定义图形设备、模式initgraph(关闭图形模式,返回文本方式,2023/7/8,12,十二、编程中常用的方法1、暂停以显示图形用getch();2、获取当前图形方式用gmode=getgraphmode();3、返回图形初始化前的模式用restorecrtmode();4、再回到图形模式用setgraphmode(gm

6、ode);,2023/7/8,13,常用方法的示例(myg1.c),#include#include main()int gmode;int graphdriver=DETECT,graphmode;initgraph(,2023/7/8,14,十三、常用的画图函数(坐标为屏幕坐标)1、移动画笔到moveto(x,y)从当前位置移到x,y2、画线lineto(x,y)从当前位置画线到x,y3、画圆circle(x,y,r)以x、y为圆心,r为半径画圆4、画矩形rectangle(x1,y1,x2,y2)画左上角为(x1,y2)右下角为(x2,y2)的矩形。5、画直方图(平面,即填充的矩形)ba

7、r(x1,y1,x2,y2),2023/7/8,15,6、画立体直方图bar3d(x1,y1,x2,y2,a,b)a为深度,b=1时画3维顶;b=0时不画3维顶。7、画椭圆ellipse(x,y,s,e,xr,yr)(x,y)为椭圆中心坐标,s为起始角,e为终止角,xr为横轴半径,yr为纵轴半径;xr=yr为圆、xryr横轴长椭圆、yrxr为纵轴长椭圆。8、画填充椭圆fillellipse(x,y,xr,yr)9、画圆弧arc(x,y,s,e,r)(x,y)为圆心坐标,s为起始角,e为终止角,r为半径。,2023/7/8,16,10、画多边形drawpoly(a,b)画a-1边形,b为顶点坐标

8、参数(一般用数组设置各个顶点的坐标,最后一个回到起点)。11、画填充多边形fillpoly(a,b)参数同画多边形12、画点putpixel(x,y,c)(x,y)为屏幕坐标、c为点的颜色。13、画填充扇形pieslice(x,y,s,e,r)参数同画圆弧14、填充类型设置:setfillstyle(填充模式,颜色值),2023/7/8,17,15、线形设置:setlinestyle(线型,模式,线宽),2023/7/8,18,模式:非用户定义取0,用户自定义设置为4位十六进制数。其二进制为1处显示点,为0处不显示。例如,0 xff00其二进制表示为。线宽:值取1为细线;取3为粗线,绘图演示示

9、例(myg3.c),#include main()int myarr=50,50,89,100,180,264,231,320,130,90,50,50;int graphdriver=DETECT,graphmode;initgraph(,2023/7/8,19,演示示例(合成方波、存储管理等),1、合成方波方波可以分解为n次正弦和余弦波,反之,也可用n次正弦和余弦波合成方波。演示结果2、存储管理内存的分配可以用图形模拟其分配和回收的过程。演示结果,2023/7/8,20,练习,1、在屏幕上连续画5个半径为30的相切圆。2、编写一个绘制y=3x3+2x2+5曲线的程序。3、编写绘制Sin曲线的程序。本课件由提供,2023/7/8,21,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号