Turbo C图形编程.ppt_第1页
Turbo C图形编程.ppt_第2页
Turbo C图形编程.ppt_第3页
Turbo C图形编程.ppt_第4页
Turbo C图形编程.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、,dikax=0,dikay=0; int graphdriver=DETECT,graphmode; initgraph( ,2020/8/9,9,九、Turbo C环境配置 C源程序编译后链接时需要图形库文件graphics.lib;有些安装版本没有将该库文件连接入模式库中。如果没有,则需要自己用TLIB命令进行连接,进入Turbo C安装目录;执行: tlib cs+libgraphics.lib tlib cc+libgraphics.lib tlib cm+libgraphics.lib tlib ch+libgraphics.lib tlib cl+libgraphics.lib,

5、2020/8/9,10,十、程序框架 了解相关的概念后,需要掌握C图形编程的框架结构(这个框架可以作为模版)。 #include main() int graphdriver=DETECT,graphmode; initgraph( ,2020/8/9,11,#include 图形函数的头文件 int graphdriver=DETECT,graphmode; 定义图形设备、模式 initgraph( 关闭图形模式,返回文本方式,2020/8/9,12,十二、编程中常用的方法 1、暂停以显示图形 用getch(); 2、获取当前图形方式 用gmode=getgraphmode(); 3、返回图

6、形初始化前的模式 用restorecrtmode(); 4、再回到图形模式 用setgraphmode(gmode);,2020/8/9,13,常用方法的示例(myg1.c),#include #include main() int gmode; int graphdriver=DETECT,graphmode; initgraph( ,2020/8/9,14,十三、常用的画图函数(坐标为屏幕坐标) 1、移动画笔到 moveto(x,y) 从当前位置移到x,y 2、画线 lineto(x,y) 从当前位置画线到x,y 3、画圆 circle(x,y,r) 以x、y为圆心,r为半径画圆 4、画矩

7、形 rectangle(x1,y1,x2,y2) 画左上角为(x1,y2)右下角为(x2,y2)的矩形。 5、画直方图(平面,即填充的矩形) bar(x1,y1,x2,y2),2020/8/9,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,

8、y,s,e,r) (x,y)为圆心坐标,s为起始角,e为终止角,r为半径。,2020/8/9,16,10、画多边形 drawpoly(a,b) 画a-1边形,b为顶点坐标参数(一般用数组设置各个顶点的坐标,最后一个回到起点)。 11、画填充多边形 fillpoly(a,b) 参数同画多边形 12、画点 putpixel(x,y,c) (x,y)为屏幕坐标、c为点的颜色。 13、画填充扇形 pieslice(x,y,s,e,r) 参数同画圆弧 14、填充类型设置:setfillstyle(填充模式,颜色值),2020/8/9,17,15、线形设置:setlinestyle(线型,模式,线宽),2

9、020/8/9,18,模式: 非用户定义取0,用户自定义设置为4位十六进制数。 其二进制为1处显示点,为0处不显示。例如,0 xff00其 二进制表示为1111111100000000。 线宽: 值取1为细线;取3为粗线,绘图演示示例(myg3.c),#include main() int myarr=50,50,89,100,180,264,231,320,130,90,50,50; int graphdriver=DETECT,graphmode; initgraph( ,2020/8/9,19,演示示例(合成方波、存储管理等),1、合成方波 方波可以分解为n次正弦和余弦波,反之,也可用n次正弦和余弦波合成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论