- 1、本文档共17页,可阅读全部内容。
- 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的图形模式编程2.1图形编程基础VC+EasyX库里提供了图形函数就可以在VC环境下进行图形编程。对图形函数的操作都是在视口(Viewport)上进行。用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。视口是在图形屏幕状态下的概念,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。然而现在,其含义拓宽为指图形显示器上的最小可访问点)。文本与图形都可以在视口上显示。?图形视口的左上角坐标为(0,0)。例如:分辨率为640*480的视口像素点的定位显示器在图形模式下工作时,显示的单位是像素点,通过控制各像素点的颜色和灰度等级来形成图形。因此绘图的第一步是进行图形模式的初始化,系统进入绘图模式。(1) initgraph() 图形初始化函数用法:?HWND initgraph(?int width,?int height,?int flag = NULL);?示例:以下局部代码创建一个尺寸为 640x480 的绘图环境:?initgraph(640, 480);例2-1:调用initgraph()设置640*480的图形模式,在屏幕中央显示如下的图形。参考代码:#includegraphics.h#include conio.hint? main(){ initgraph(640, 480); line(200, 240, 440, 240); line(320, 120, 320, 360); getch(); closegraph(); return 0;}?[学习单步执行]试着单步执行刚才的程序,由于绘图和多线程等因素的限制,请务必按照以下步骤尝试(熟练了以后就不用了):1. 将VC取消最大化,并缩小窗口,能看到代码就行。2. 按一下F10(单步执行),会看到屏幕上出现一个黄色的小箭头,指示将要执行的代码。3. 当箭头指向initgraph()语句时,按F10,能看到窗口发生了变化。4. 将新的绘图窗口和VC并排放,相互不要有覆盖。这步很重要,否则绘图内容将会被VC窗口覆盖。5. F10执行getch后,记得激活绘图窗口,并按任意键,否则程序不会继续执行。6. closegraph后,直接按F5执行全部剩余程序,结束。单步执行很重要,可以让你知道程序执行到哪里是什么效果,哪条语句执行出了问题等等。例2-2:更进一步,打印出分辨率,并在屏幕中央显示如下的图形 参考代码#include stdio.h#includegraphics.h#include conio.h#define WIDTH?? 150???? /*矩形的宽度*/#define HEIGHT? 100???? /*矩形的高度*/int startX,startY;????? /*矩形的左上角坐标*/int maxX;int maxY;void init();?????? /*图形模式的初始化*/void showText();? /*显示文本*/void drawK();??? /*画图形*/int? main(){ init(); showText(); drawK(); closegraph(); return 0;}void init(){ initgraph(640,480); maxX = getmaxx(); maxY = getmaxy(); setbkcolor(BLACK);??? /*设置背景色为黑色*/ cleardevice();????????? /*清屏*/}void showText(){ char str[50]; sprintf(str,(%d,%d),maxX,maxY);??? /*将要显示的分辩率以字符串形式保存到str*/ outtextxy(maxX/4,maxY/4,str);??????? /*在指定位置显示字符串str*/}void drawK(){ startX = (maxX-WIDTH)/2; startY = (maxY-HEIGHT)/2; setcolor(WHITE); rectangle(startX,startY,startX+WIDTH,startY+HEIGHT); setcolor(YELLOW); line(startX,startY,startX+WIDTH,startY+HEIGHT); line(startX+WIDTH,startY,startX,startY+HEIGHT); setcolor(RED); circle(maxX/2,maxY/2,30); getch();??? //暂停,任意健继续}例2-3:用若干个小矩形块画一个围墙的效果,如下图:参考代码:#include graphics.h#incl
文档评论(0)