C语言画图形(图形库graphics的使用)

C语言画图形(图形库graphics的使用)

目录 工具 c语言基本绘图 文字输出 c语言基本贴图 获取鼠标、键盘信息

工具

(1)环境:VC++ (2)库函数:graphics.h(因为不是标准库函数,所以需下载EASYX) (3)编译软件:VS、VC++6.0

c语言基本绘图

本节目录:窗口的创建及背景颜色、基本绘图函数(点、线、圆、矩形以及设置其属性)

#include

#include //图形库

#include //时间库函数

int main(){

//注意窗口的横纵坐标原点是左上角

(1)窗口的创建及背景颜色

①窗口的创建

initgraph(int width,int hight);//创建窗口

closegraph();//关闭窗口

②设置背景颜色

setbkcolor(RED);cleardevice();//参数可以为颜色的英文,记住需要刷新窗口才能显示设置后的颜色

setbkcolor(RGB(int x,int y,int z));cleardevice();//或者可以调制三原色,记住需要刷新窗口才能显示设置后的颜色

(2)基本绘图函数

①绘点

putpixel(int x,int y,color color);//参数为横纵坐标和颜色

//如何随机生成点呢

#include

srand((unsigned int)time(NULL));//设置随机点的种子

int x = rand()%n;//rand()是生成随机数,然后对n取余,则得到的所有的x值都小于等于n

int y = rand()%n;

putpixel(x,y,color);

②绘线

line(int x1,int y1,int x2,int y2);//两点确定一条直线

//如何设置线的属性呢(注意必须写在画线函数的前面)

setlinecolor(color color);//参数可以是颜色,也可以是三原色

setlinestyle(linestyle linestyle,int width);//参数linestyle可以点进去库函数查看,可以设置虚线、直线....,width是线的宽度

③矩形

rectangle(int x1,int y1,int x2,int y2);//两点确定一个矩形

④圆

circle(int x,int y,int r);//圆心的横纵坐标和圆的半径

⑤填充(实心填充(不渲染边的颜色)、全部填充)

//圆的填充

setfillcolor(color color);//先设置填充颜色

//全部填充

fillcircle(int x,int y,int r);//参数横纵坐标和半径

//实心填充

solidcircle(int x,int y,int r);

//矩形的填充

}

文字输出

#include

#include //图形库

int main(){

文字输出:

(1)输出文字

函数outtextxy(int x,int y,"jiajia");

注意:多字节报错

修改方式:

①outtextxy(int x,int y,L"jiajia");

②outtextxy(int x,int y,_T("jiajia"));

③outtextxy(int x,int y,"jiajia");//修改项目属性,将“字符集”修改为使用多字节字符集

(2)文字格式

setcolor(BLACK);//文字颜色

settextstyle(int width,int hight,"文字字体(例如黑体)");//文字的宽和高,以及文字的字体,字体路径:C:\Windows\Fonts\

setbkmode(TRANSPARENT);//文字背景透明

(3)输出数字(注意,输出数字的方法是将数字转换为字符串去输出)

char str[1000];//首先定义一个字符数组

int x = 20;//需要输出的数字

sprintf(str,"输出数字x = %d",x);//将引号里的字符串转化为字符串并输出

}

c语言基本贴图

本节目录:基本绘图、图片大小问题、图片路径问题、批量加载图片 贴图putimage(int x,int y,&m);是把图片的左上角放到(x,y)

#include

#include

int main(){

(1)基本绘图

注意:图片变量获取图片地址时一定在变量前面加上取地址符

IMAGE m;//定义图片变量

loadimage(&m,"m.jpg(或者m.png)",int width,int hight);//将图片的地址赋给m(注意:width和hight为图片的宽和高)

putimage(int x,int y,&m);//参数为图片要放在窗口的坐标和m(即图片的地址)

(2)图片大小问题

解决方法有以下两种

①缩放图片的大小(即长宽)去适应窗口

②通过图片变量区域获取图片的大小

IMAGE m;

int width = m.getwidth;

int hight = m.gethight;

③直接去查看图片的属性

(3)图片路径问题(相对路径、绝对路径)

①相对路径

loadimage(&m,"m.jpg(或者m.png)");//此时的图片就在当前项目的文件下,可以直接这样引用

②绝对路径(即图片的当前位置)

loadimage(&m,"C:/Users/Administration/Desktop/m.jpg(或者m.png)");//C:\Users\Administrator\Desktop(电脑中的地址),由于转义字符问题的存在,在这里我们的绝对地址使用反斜杠'/'或者双斜杠'\\'

(4)批量加载图片

IMAGE image[100];

for(int i = 1 ;i < n ;i++){//n为需要加载出来的图片数量

char imageName[100] = "";

sprintf(imageName,"%d.jpg");//图片名字需要手动更改为1、 2、 3 、4...n

loadimage(&image[i - 1],imageName[i - 1]);

putimage(x,y,&image[i]);

(5)透明贴图

步骤:

①准备背景图和掩码图//注意制作背景图和掩码图时白色部分一定要纯白,黑色部分一定要纯黑

②SRCAND方式去贴掩码图

③SRCPAIND方式去贴背景图

示例:

loadimage(&background,"background.jpg(或者m.png)");

loadimage(&mask,"mask.jpg(或者m.png)");

putimage(x,y,&mask,SRCAND);//SRCAND方式去贴掩码图

putimage(x,y,&background,SRCPAIND);//SRCPAIND方式去贴背景图

}

左边为背景图(黑色必须纯黑),右边为掩码图

获取鼠标、键盘信息

本节目录:

int main(){

(1)鼠标操作

步骤:

MouseMsg mouse;//声明一个鼠标消息变量(mousemessage)

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

switch(mouse){

case WM_MOUSEMOV:outtextxy(x,y,_T(""));//其他的动作可以鼠标右击查看

break;

}

}

相关文章

荷兰对喀麦隆 交手统计数据
365bet在线登录

荷兰对喀麦隆 交手统计数据

📅 09-06 👁️ 6413
4 种简单方法,帮你轻松删除 Windows 服务
365bet会员登录

4 种简单方法,帮你轻松删除 Windows 服务

📅 10-21 👁️ 4970