C语言图形库——easyx的使用

easyx的使用

1. 创建图像和画布

IMAGE image;定义一个IMAGE叫做image

loadimage(&image, _T(“路径\1.jpg”),100,100);把路径下图片赋给image,并且拉伸为100*100 ,如果只需要加载图片到绘图窗体上, 那么请将 loadimage 的第一个参数设置为 NULL 即可,这样就不需要定义 IMAGE 对象了。

image.getwidth();//获取图片image的宽

image.getheight();//获取图片image的高

initgraph(640, 480); //创建一个640*480的画布

initgraph(w,h, SHOWCONSOLE);//创建一个画布并保留控制台

putimage(0, 0, width, high,&image,x,y);//把图像image放入画布中,并且左上角在(0,0)位置,图形的宽为width,长为high,从(x,y)处开始取图,且(width, high,x,y)可以不写

closegraph(); //关闭画布

getimage(&img,70, 70, 60, 60);//以画布上(70,70)为左上角截取长宽为(60,60)的图像放入img中

2. 文字操作

setbkcolor(YELLOW);

setbkcolor(RGB(180,24,137)); //设置文字颜色

settextstyle(30, 30, “楷体”);//设置文字格式(长,平均宽度,字体)

sprintf_s(num, “%d”,i);//把int格式的i转化为字符串形式的num,并在下一条语句中输出在画布上

outtextxy(10,10,“小猫猫”); //在(10,10)处显示文字“小猫猫”

3. 画线操作

setlinecolor(RED);//设置直线颜色为红色

setlinestyle(PS_SOLID, 10);//设置线的格式

line(30, 50, 30, 100);//划直线连接(30,50)和(30,100)

4. 画点操作

putpixel(x,y,BULE);//在图形窗口的(x,y)处显示一个颜色为蓝色的点

5. 画矩形操作

setfillcolor(RED);//设置填充色

rectangle(x,y,xx,yy);//矩形左上角坐标(x,y)、右下角坐标(xx,yy)画一个矩形

6. 画圆操作

fillcircle(x, y,r);//以(x,y)为圆心,划半径为r的圆

7. 清空画布

cleardevice();//将当前图形窗口清空,还原至背景颜色。

8. XOR模式

setwritemode(R2_XORPEN); //设置XOR绘图模式,重复画线会恢复背景颜色,颜色叠加部分有重叠效果

9. 延时操作
Sleep(100);延时100毫秒,降低CPU占有率

10. 计秒数

#include<time.h>//需要头文件

clock_t start=clock();

clock_t end=(clock()-start)/CLOCKS_PER_SEC;

11. 随机函数

#include<time.h>

int num=rand()%100;

12. 颜色:

BLACK 黑 DARKGRAY
深灰 BLUE 蓝
LIGHTBLUE 亮蓝 GREEN绿

LIGHTGREEN 亮绿 CYAN 青 LIGHTCYAN 亮青 RED 红 LIGHTRED 亮红

MAGENTA 紫 LIGHTMAGENTA 亮紫 BROWN棕 YELLOW黄 LIGHTGRAY 浅灰 WHITE 白

纯绿色 0x00ff00  RGB(0,
255, 0)

青色  0xffff00  RGB(0,
255, 255)  注:青=蓝+绿

中灰色 0x7f7f7f  RGB(127,
127, 127)

黄色  0x00ffff  RGB(255,
255, 0)  注:黄=红+绿

颜色操作:

int c = getpixel(100, 100); 获取(100,100)处的颜色并返回给c

putpixel(100, 100,c);把颜色c放到画布(100,100)处

(0xff0000 - (c & 0xff0000)) | (0x00ff00 - (c &
0x00ff00)) | (0x0000ff - (c & 0x0000ff));//底片效果

13. 键盘操作:(捕获一个键盘输入并输出)

char c;

if(kbhit())

c=getch();

14. 鼠标操作:

MOUSEMSG msg; //定义一个鼠标消息

msg=GetMouseMsg();//获取鼠标消息

switch(msg.uMsg)

{

case WM_MOUSEMOVE: ……break;//鼠标移动消息

case WM_MOUSEWHEEL: ……break;//
鼠标滚轮拨动消息

case WM_LBUTTONDOWN: ……break;//
左键按下消息

case WM_MBUTTONDOWN: ……break;//
中键按下消息

case WM_RBUTTONDOWN: ……break;//
右键按下消息

}

Ps:在此例中可用msg.x和msg.y来确定鼠标位置

WM_MOUSEMOVE 鼠标移动消息

WM_MOUSEWHEEL 鼠标滚轮拨动消息

WM_LBUTTONDOWN 左键按下消息

WM_LBUTTONUP 左键弹起消息

WM_LBUTTONDBLCLK 左键双击消息

WM_MBUTTONDOWN 中键按下消息

WM_MBUTTONUP 中键弹起消息

WM_MBUTTONDBLCLK 中键双击消息

WM_RBUTTONDOWN 右键按下消息

WM_RBUTTONUP 右键弹起消息

WM_RBUTTONDBLCLK 右键双击消息

  • 74
    点赞
  • 457
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值