- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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,star
您可能关注的文档
最近下载
- 成都电子科技大学实验中学新初一均衡分班语文试卷.doc VIP
- 成都电子科技大学实验中学新初一分班数学试卷含答案.doc
- 固体废物热值测定实验.doc VIP
- 14J936变形缝建筑构造.pptx VIP
- ZrO2-III 液晶显示氧化锆氧量分析仪说明书.pdf VIP
- 轻松学中医系列——《药性赋》选讲-曾培杰.docx
- Schneider Electric施耐德EvoPacT™ HVX 12kV真空断路器 全新一代数字化中压配电产品 操作手册安装和用户指南(中文).pdf
- 数控车削加工技术课程思政教学改革实践案例.docx VIP
- KORG科音Pa700快速说明书.pdf
- 2025年6月浙江省杭州市高一地理学考模拟试卷 1 .pdf VIP
文档评论(0)