easyx学习总结

来源:互联网 发布:捷孚凯市场咨询知乎 编辑:程序博客网 时间:2024/06/06 16:39

                                                       easyx学习第一天

 一. 对easyx的简单认识

1.  首先说一下我学习这个的原因。

主要是因为课程的需要,要求我们做一个小型项目,鉴于目前学的c++,所以想写一个五子棋,而写五子棋最主要的当然是算法,但其界面设计仍然很重要。OpenGL是目前用的最多的图形库,主流语言是c++,Java,javascript,c#,Objective-C.还有一个就是QT,因为我的学习目标主要不是绘图,绘图编程只是软件设计过程中的一个小插曲,而且图形编程对数学的要求很高,经过工作室同学的介绍,开始接触easyx。easyx是针对C++的图形库,可以帮助C语言初学者快速上手图形和游戏编程。比如可以用easyx很快的画一个物体或编写小游戏等。很多人在进行图形编程的时候,一开始就直接学QT,当然这也可以,但个人观点是先学一些简单的图形库,因为大致都是相通的,这样以后学习其他的图形编程就能快速上手了。

  2.   在学习easyx之前,简单介绍一些计算机图形学的知识。

大家应该都知道分辨率的概念。比如我的电脑的分辨率就是1920 x 1080,所以我屏幕上的所有点,线,面等所有图形就是通过这1920*1080 个像素点来构成的。而用离散的点来表示连续的图形就会引起失真,或者叫混淆。比如我们在Excel上写一个汉字,然后不断放大,就会看到直线边缘出现锯齿状,而用Word则会看到边缘仍然很清晰,这里又要引出字符在图形中的两种表达形式:点阵表示和矢量表示。Excel就是用的点阵形式,Word就是用的矢量形式。这两者的区别其实很简单,前者就是记录的字符的像素点,而后者则是记录的字符的各个参数,具体的这里就不讲了。
 3.   然后接下来简单介绍图形在屏幕上是怎样生成的。

 现在我们用的几乎都是LCD显示了,还有几种主要是CRT(阴极射线管),LED等。而要讨论算法的经典问题的话主要是CRT。首先是画一条直线,我们都知道,先是由点构成的,在CRT中显示一条直线也是通过一个点不断扫描而生成的。生成直线的算法主要是DDA算法和中点算法(具体算法内容不做介绍),生成了线接下来当然就是生成面了。同理,面,及各种多边形,二维的图形的生成首先是通过点生成线的方法生成图形边框,然后再进行填充。具体方法同样不做介绍。有了面,接下来就是体了(即三维)。三维图形的生成在现在的很多3D游戏中的应用十分广泛,初学者我建议如果不是打算以后要搞图形的话,学到二维就可以了。


二.  Easyx第一课

 1.图形库环境配置

要想在VS(我用的VS2013,其他的编译器同理)上实现用easyx绘图,首先当然就是要配置好这个图形库。第一步就是去Easyx官方下载图形库安装包,安装包很小,就几百KB。下载好了安装包接下来就是配置了,具体配置方法如下(以下内容为百度转载:http://jingyan.baidu.com/album/73c3ce280e4bf1e50243d95f.html?picindex=1):


(1)首先打开easyx文件夹,双击打开include文件夹,复制其中的两个文件easyx.h和graphics.h


    


(2)找到Visual Studio所在的安装目录,打开VC文件夹,打开其中的include文件夹,将刚才复制的两个文件粘贴到此文件夹下(可按Ctrl+v快捷键)



        (3)返回easyx文件夹,打开lib文件夹中的amd64文件夹,复制其中的easyx.lib和easyxw.lib两个文件。



(4)返回easyx文件夹,打开lib文件夹,复制其中四个文件(easyx.lib,easyx6.lib,easyxw.lib,easyxw6.lib)



(5)与步骤二相同,打开VC/lib/amd64文件夹,将步骤三中复制的两个文件粘贴到此文件夹下



(6)打开Visual Studio所在的安装目录,打开VC/lib文件夹,将步骤五中所复制的四个文件粘贴到此目录下,大功告成!下面我们就可以使用easyx图形库来做自己喜欢的图形界面了 
以上就是图形库环境的配置,接下来就可以开始编程了。

2.第一个程序

(1)首先是创立一个C++项目,创建方法跟普通建立c++项目的方法是一样的。创建好之后就可以开始编程了(ps.easyx其实就是由很多图形函数构成的,我们只需要学会怎么去调用它就可以了,不必去深究具体实现方法,所以easyx的学习其实是很简单的)

下面写一个最基本的画一条直线的代码(然后再一一介绍其功能):


#include<graphics.h>                      //绘图库头文件,绘图语句需要
#include<conio.h>                           //在控制台输入输出文件
int main()
{
initgraph(640, 480);                //初始化一个640*480的窗口,
line(100, 100, 200, 200);        //画一条从点(100,100)到点(200,200)的直线
line(100, 200, 200, 100);
getch();                                  //按任意键
closegraph();                         //关闭绘图窗口
return 0;

}



注意:这里的坐标与数学里的有点差别,这里的原点是在左上方。行方向是x坐标,列方向是y坐标。

 

(2)会基本的格式接下来就是函数的学习了

(easyx就是一个函数库,使用者只需要会调用即可,不必太深究函数的具体实现过程)

比如:


circle(x,y,r)                //以(x,y)为圆心,r为半径的圆

putpixel(x,y,c)           //画点(x,y),颜色为c

fillcircle(x,y,r)            //以(x,y)为圆心,r为半径的填充圆


其他更多多边形的函数在下载的那个easyx包里面的Help文档里有详细介绍,这里就不详细介绍了。

       注意:easyx下载包里面的Help文档是非常有帮助的学习资料,一定要充分利用


(3)然后接下来就是颜色了


setlinecolor(c);            // 设置画线颜色,如setlinecolor(RED)

setfillcolor(c);              // 设置填充颜色,如setlinecolor(RED)

setbkcolor(c);             //  设置背景颜色

关于颜色的函数还有很多,更多的请参考上面所提到的Help文档


注意:  颜色就是所对应的英文单词的大写,或者也可以用三基色(红red,绿green,蓝blue)来表示。

格式为RGB(r,g,b)               //r,g,b分别表示红,绿,蓝。范围是    0-255

比如setlinecolor(RED)等价于setlinecolor(RGB(255,0,0))

(4)延时语句

学会颜色接下来就是延时控制了:Sleep(4000)      //延时4000毫秒,即4秒。通过延时可以写出图形的移动,这是动画形成的原理基础。(具体的内容下次会专门讲述)


学了以上这些技巧,再加上for语句就可以写出很多的图形了


好了,第一天的学习就到这里了。学了以上这些技巧,再加上for语句和其它语法知识的运用就可以写出很多的图形了,聪明的你开始动手尝试写吧。




(欢迎各位读者对本文的不足提出意见,若有问题需要我们一起探讨的欢迎发送邮件215937834@qq.com)




     
 
 
 
                   
1 0
原创粉丝点击