本文主要是介绍easyx之图形库复习--自制写轮眼的图形绘制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引子效果图如下:
什么是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;
}
有机会:我还会展示更多图形的绘制!
这篇关于easyx之图形库复习--自制写轮眼的图形绘制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!