- 目录
工具
c语言基本绘图
文字输出
c语言基本贴图
获取鼠标、键盘信息
工具
(1)环境:VC++
(2)库函数:graphics.h(因为不是标准库函数,所以需下载EASYX)
(3)编译软件:VS、VC++6.0
c语言基本绘图
本节目录:窗口的创建及背景颜色、基本绘图函数(点、线、圆、矩形以及设置其属性)
#include <stdio.h>
#include <graphics.h>//图形库
#include <time.h>//时间库函数
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 <time.h>srand((unsigned int)time(NULL));//设置随机点的种子int x = rand()%n;//rand()是生成随机数,然后对n取余,则得到的所有的x值都小于等于nint 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 <stdio.h>
#include <graphics.h>//图形库
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 <stdio.h>
#include <graphics>
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...nloadimage(&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;}
}