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

工具

(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值都小于等于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 <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...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;
        }
}
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值