课程设计绘图 示意图 使用graphics.lib实现

0.安装

c语言和c++还有计算机课程设计中含有绘制示意图的问题,最简单的方式是利用各种字符在命令行中绘制,但是局限性太大,更好的是利用graphics.lib包
在EasyX官网中可以下载c语言的EasyX

https://easyx.cn/

安装EasyX文档和对应编程软件的插件
EasyX文档是帮助文档,感觉特别实用
easyx
然后在编程中包含头文件

#include <graphics.h>
#include <conio.h>

即可

1.生成绘图窗口的三种方式,效果不同:

initgraph(700, 700);	//仅显示绘图窗口
initgraph(700, 700, SHOWCONSOLE);	//同时显示绘图窗口和命令行
initgraph(700, 700, SHOWCONSOLE | NOCLOSE);	//同时显示绘图窗口和命令行并且禁用绘图窗口的关闭按钮

这时会生成一个绘图窗口,大小为700×700像素,也就是分辨率,以上三种方式均可

2.生成长方形:

rectangle(20, 45, 70, 55)	//生成空心长方形
fillrectangle(20, 45, 70, 55);	//生成实心长方形

“20, 45, 70, 55”这四个数字是坐标,在绘图窗口中,以左上角坐标为(0,0),x轴是向右为正,y轴是向下为正
20表示长方形最左边的x轴坐标,45表示长方形最上边的y轴坐标
70表示长方形最右边的x轴坐标,55表示长方形最下边的y轴坐标

3.生成圆形:

circle(20, 50, 20);		//生成空心圆形
fillcircle(20, 50, 20);	//生成实心圆形

生成 一个圆,圆心坐标为(20,50),半径为20

4.生成连线,连接两点:

line(a1, b1, a2, b2);

连线,连接(a1, b1),(a2, b2)两点

5.绘图颜色设置:

setlinecolor(GREEN);	//线条颜色为green
setfillcolor(RED);		//填充颜色为RED

举例:

setlinecolor(GREEN);   // 设置当前线条颜色为green
setfillcolor(YELLOW);   // 设置当前填充颜色yellow
fillrectangle(20, 45, 70, 55);

此时会生成一个边长为绿色,但内部填充色为黄色的长方形
注:bar(20, 45, 70, 55)生成“棒子”,函数参数与rectangle意义相同,但是bar函数不受 setlinecolor 线条颜色设置,只受 setfillcolor 填充颜色设置

6.字体设置

settextstyle(12, 0, _T("宋体"));	//设置字体格式
outtextxy(75, 45, "你好hello");		

在坐标(75,45)处打印文字"你好hello",高度12,自适应宽度,文字是宋体

void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace)
nHeight: 字符的平均高度;
nWidth: 字符的平均宽度(0 表示自适应);
lpszFace: 字体名称;

7.字体颜色设置

settextcolor(YELLOW); 	//设置颜色为yellow
outtextxy(75, 45, "你好hello");		

此时打印的字体是黄色,不必每次打印文字都要设置颜色,设置一次颜色后,后面的打印均是这个颜色,一直到下一个颜色设置才会改变

8.LOGFONT字体设置结构体介绍

LOGFONT字体设置的功能很多,参数设置也容易眼花缭乱
一般字体设置使用settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace)函数即可,但是遇到对字体要求较高时,可以使用settextstyle(const LOGFONT *font);
以下举一个简单例子

LOGFONT text;	//定义结构体变量log
gettextstyle(&text);	//获取当前字体设置,赋值给text
text.lfHeight = 22;		//将字体高度改为22,宽度默认自适应
text.lfWeight = 1000;	//将字体的粗细改为1000,可以设置0~1000,1000笔迹最粗
_tcscpy_s(text.lfFaceName, _T("宋体"));		//将字体格式改为宋体
settextstyle(&text);	//使用赋值好的text变量

有关其他参数的具体介绍可以看EasyX文档中的 函数说明-文字输出相关函数-LOGFONT

struct LOGFONT {
	LONG lfHeight;	//指定高度(逻辑单位)
	LONG lfWidth;	//指定字符的平均宽度(逻辑单位)。如果为 0,则比例自适应。
	LONG lfEscapement;	//字符串的书写角度,单位 0.1 度,默认为 0。
	LONG lfOrientation;	//每个字符的书写角度,单位 0.1 度,默认为 0。
	LONG lfWeight;	//字符的笔画粗细,范围 0~1000,0 表示默认粗细。
	BYTE lfItalic;	//指定字体是否是斜体。
	BYTE lfUnderline;	//指定字体是否有下划线。
	BYTE lfStrikeOut;	//指定字体是否有删除线。
	BYTE lfCharSet;	//指定字符集。
	BYTE lfOutPrecision;	//指定文字的输出精度。
	BYTE lfClipPrecision;	//指定文字的剪辑精度。
	BYTE lfQuality;		//指定文字的输出质量。
	BYTE lfPitchAndFamily;	//指定以常规方式描述字体的字体系列。
	TCHAR lfFaceName[LF_FACESIZE];	//字体名称,名称不得超过 31 个字符。
};

其他绘图方法在EasyX文档中均有详细介绍,全中文的,很方便

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值