- 1、本文档共15页,可阅读全部内容。
- 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.h
int? 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,start
您可能关注的文档
- 2016届《导与练》一轮复习高效信息化课堂大题冲关集训(五).doc
- 2016年CPA考试《经济法》考点解读第10章企业国有资产法律制度02.doc
- 2016年CPA讲义《财管》第十九章营运资本投资01.doc
- 2016年会计从业资格考试-[湖北湖南河南河北]财经法规_至诚会计刘老师-第七章第九节.doc
- 2016年会计从业资格考试-[湖北湖南河南河北]财经法规_至诚会计刘老师-第七章第五节.doc
- 2016年会计从业资格考试-[湖北湖南河南河北]财经法规_至诚会计刘老师-第七章第六节.doc
- 2016年中戏考研-中央戏剧学院戏剧与影视学考研经验分享.doc
- 2016年会计从业资格考试-[湖北湖南河南河北]财经法规_至诚会计刘老师-第七章第四节.doc
- 2016年会计从业资格考试-[湖北湖南河南河北]财经法规_至诚会计刘老师-第六章第五节.doc
- 2016年会计从业资格考试-[湖北湖南河南河北]财经法规_至诚会计刘老师-第六章第三节.doc
文档评论(0)