引子效果图如下:
什么是easyx?
EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。
个人认为有点像api,web前段等功能
如何画(针对我效果图而言需要的而言)?
基础库?
#include<easyx.h>
#include<stdio.h>
#include<graphics.h>
#define b 3.14
基础函数
1,initgraph()这个函数用于初始化绘图窗口
width 绘图窗口的宽度。
height 绘图窗口的高度。
flag 绘图窗口的样式,默认为 NULL。
initgraph(
int width,
int height,
int flag = NULL
);
2,closegraph()这个函数用于关闭绘图窗口
3,setaspectratio()函数用于设置当前缩放因子void setaspectratio(float xasp,float yasp);
as:setaspectratio(1, -1);表示在x方向上是正,y方向上是负。即我们常见的坐标轴!
4,setbkcolor()这个函数用于设置当前设备绘图背景色。
表示颜色的方法
1 . 用预定义常量表示颜色
常量 值 颜色
-------- -------- --------
BLACK 0 黑
BLUE 0xAA0000 蓝
GREEN 0x00AA00 绿
CYAN 0xAAAA00 青
RED 0x0000AA 红
MAGENTA 0xAA00AA 紫
BROWN 0x0055AA 棕
LIGHTGRAY 0xAAAAAA 浅灰
DARKGRAY 0x555555 深灰
LIGHTBLUE 0xFF5555 亮蓝
LIGHTGREEN 0x55FF55 亮绿
LIGHTCYAN 0xFFFF55 亮青
LIGHTRED 0x5555FF 亮红
LIGHTMAGENTA 0xFF55FF 亮紫
YELLOW 0x55FFFF 黄
WHITE 0xFFFFFF 白
2. 用 16 进制数字表示颜色
16 进制的颜色表示规则为:0xbbggrr (bb=蓝,gg=绿,rr=红)
3. 用 RGB 宏合成颜色
5,cleardevice()这个函数使用当前背景色清空绘图设备
6,setlinecolor()这个函数用于设置当前设备画线颜色
7,setfillstyle()这个函数用于设置当前设备填充样式
8,setbkmode()这个函数用于设置当前设备图案填充和文字输出时的背景模式
9,settextcolor()这个函数用于设置当前文字颜色。
10,settextstyle()这个函数用于设置当前文字样式
void settextstyle(
int nHeight,
int nWidth,
LPCTSTR lpszFace,
int nEscapement,
int nOrientation,
int nWeight,
bool bItalic,
bool bUnderline,
bool bStrikeOut,
BYTE fbCharSet,
BYTE fbOutPrecision,
BYTE fbClipPrecision,
BYTE fbQuality,
BYTE fbPitchAndFamily
);
11,outtextxy()这个函数用于在指定位置输出字符串
12,circle()画圆
13,putpixel()这个函数用于画点
14,line()画线
15,ellipse()画椭圆
16,rectangle()这个函数用于画无填充的矩形
17,arc()这个函数用于画椭圆弧
18,polygon()这个函数用于画无填充的多边形。
19,getchar()阻塞作用,不然太快!
代码示例:
int main()
{
initgraph(800,600);//初始化绘图窗口
setorigin(400, 300);//改变逻辑坐标,根据物理坐标
setaspectratio(1, -1);//翻转逻辑坐标
setbkcolor(BLACK);//摄制背景颜色
cleardevice();//清屏
setlinecolor(GREEN);//设置线条颜色
//setfillstyle(BS_SOLID, 5);
setfillstyle(BS_HATCHED, 5);//线条风格
setbkmode(TRANSPARENT);//字体背景为透明色
settextcolor(GREEN);//字体为绿色
settextstyle(30, 0,"华文新魏");
outtextxy(-365, 260, "Writing wheel eyes");//输出字符串(自适应字符集)
circle(0, 0, 300);//画圆形
putpixel(0, 0, YELLOW);//画点,坐标+颜色
putpixel(200, 200, RED);
putpixel(-200, 200, WHITE);
putpixel(200, -200, LIGHTGREEN);
putpixel(-200, -200, LIGHTBLUE);
for (int i = 0; i < 1000; i++)
{
int x = rand() % (800 + 1)-400;
int y = rand() % (600 + 1)-300;
putpixel(x, y, LIGHTGREEN);
}
line(200, 200, -200, -200);//直线的函数
line(200, -200, -200, 200);
ellipse(150,150,-150,-150);//椭圆的函数
rectangle(150, 150, -150, -150);//矩形的函数
//pie(100, 100, -100, -100, 0,b / 4);//扇形
arc(100, -100, -100, 100, 0, b / 4);//圆弧线
arc(100, -100, -100, 100, b/2, 3*b / 4);
arc(100, -100, -100, 100,b, 5*b / 4);
arc(100, -100, -100, 100,3*b/2, 7*b / 4);
POINT point1[] = { {0,300},{200,200},{-200,200} };
POINT point2[] = { {0,-300},{-200,-200},{200,-200} };
POINT point3[] = { {-300,0},{-200,200},{-200,-200} };
POINT point4[] = { {300,0},{200,200},{200,-200} };
polygon(point1, 3);//多边形的绘制
polygon(point2, 3);//多边形的绘制
polygon(point3, 3);//多边形的绘制
polygon(point4, 3);//多边形的绘制
getchar();//柱塞程序的运行
closegraph();//关闭图形窗口
return 0;
}