C++学习(八)(C语言部分)之 图形库
有关图形库的学习笔记
1.安装 ww.easys.cn
2.创建win32控制台应用程序
.cpp文件(图形库必须创建cpp文件) *重点
3.安装好后 重启一下vs
图形库
是一些函数的集合 作用是做一些界面和鼠标操作
函数-->帮助文档
1.基本概念
颜色 RGB值 -->RGB值表示一种颜色 RGB(255,250,250)-->snow 这个颜色 自己调颜色
图形库自己定义的 BLACK
路径问题 是指文件的路径 1.绝对路径 从盘符开始 可以直接找到文件
2.相对路径
指相对某个文件而言 res/text2.txt (相对路径用到比较多) 省略掉了当前文件夹的路径 分隔符//或者\\ 在代码里要改过来
设置问题--> 多字节的问题 点击项目文件的属性 把字符集改成使用多字节字符集 *重点
outtextxy(320,240,"你好");
-->不改多字节 outtextxy(320,240,L"你好");
outtextxy(320,240,_T("你好"));//改或不改都可以
outtextxy(320,240,TEXT("你好"));//改或不改都可以
2.窗口
界面 新建窗口
initgraph 新建窗口函数
closegraph 关闭窗口函数
3.图形库的操作
3.1 文字输入输出
文字的输出 只能用于与字符串的输出 outtextxy(坐标x,坐标y,字符串/字符)
设置字体颜色 settextcolor(YELLOW);
设置字体大小和样式 settextstyle(40,0,"宋体");
文字输入 InputBox getch
设置背景颜色 setbkcolor
清屏 cleardevice
3.2 图形绘制
setlinecolor(GREEN);//设置线的颜色
setlinestyle(PS_DASHDOT,10);//画线:点杠线 第一个参数 线条样式 第二个参数 线条宽度
线条样式如下:
PS_SOLID 线形为实线。
PS_DASH 线形为:------------
PS_DOT 线形为:············
PS_DASHDOT 线形为:-·-·-·-·-·-·
PS_DASHDOTDOT 线形为:-··-··-··-··
PS_NULL 线形为不可见。
PS_USERSTYLE 线形样式为用户自定义,有参数 puserstyle 和 userstylecount 指定。
line(100, 0, 200, 100); //画线 (100,0)(200,100)
circle(200,100,20);//画圆: 空心圆形 线条是绿色 圆心=(200,100) 半径=20
setfillcolor(BLUE);//设置填充颜色
fillcircle(300,100,40);//画圆:实心圆 中间填充白色 边缘是绿色 圆心=(300,100) 半径=40
solidcircle(400,100,50);//画圆: 实心圆 中间填充颜色 无边缘线 圆心=(400,100) 半径=50
3.3 图像操作
jpg或者bmp 格式的图片 只能是这两种
IMAGEA 变量 存放图片
loadimage和putimg
3.4 鼠标操作
4.音乐播放 (不属于图形库)
**************我是分割线****************/
#include<graphics.h> //图形库头文件
#include<stdio.h>
#include<conio.h>//getch
int main()
{
//示例
//char s[] = "hello world";
//outtextxy(10,20,s);
initgraph(640, 480);//创建窗口 640,480 是指窗口大小 单位是像素
#if 0 //是一种注释 要运行时把0改为1 文字输入与输出
setbkcolor(RGB(255,240,245));//设置背景颜色 或者里面直接输入BLUE
cleardevice();//刷新屏幕 清空屏幕内容 清屏在设置背景颜色之后清屏 要注意位置 不能把其他内容清掉
//1、输出
settextcolor(YELLOW);//设置字体颜色
settextstyle(40,0,"宋体");//设置字体和大小 40指字体高度 0指默认的字体宽度 宋体是指字体
outtextxy(320,240,"hello world 你好中国!");//320指x轴320点 240指y轴240点 窗口中输出hello world你好中国! //outtextxy(320, 240, L"hello world 你好中国!");//不改多字节的写法
//2、输入********InputBox(arr,20,"输入文字"); 用于输入一个字符串
char arr[20];
InputBox(arr,20,"输入文字");//输入内容 arr数组名 20是大小 后面是提示
outtextxy(0, 0, arr);
//3、输入一个字符 getch 头文件 conio.h 可用于游戏推箱子等等
char ch = getch();//获取用户输入一个字符
outtextxy(200,200,ch);//输出这个字符
#endif
#if 0 //图形绘制 例如五子棋棋盘 //system("cls");
//画线 画圆
setlinecolor(GREEN);//设置线的颜色
setlinestyle(PS_DASHDOT,10);//第一个参数 线条样式 第二个参数 线条宽度
/*线条样式如下:
PS_SOLID 线形为实线。
PS_DASH 线形为:------------
PS_DOT 线形为:············
PS_DASHDOT 线形为:-·-·-·-·-·-·
PS_DASHDOTDOT 线形为:-··-··-··-··
PS_NULL 线形为不可见。
PS_USERSTYLE 线形样式为用户自定义,有参数 puserstyle 和 userstylecount 指定。
*/
line(100, 0, 200, 100); //画线 (100,0)(200,100)
circle(200,100,20);//画圆: 空心圆形 线条是绿色 圆心=(200,100) 半径=20
setfillcolor(BLUE);//设置填充颜色
fillcircle(300,100,40);//画圆:实心圆 中间填充白色 边缘是绿色 圆心=(300,100) 半径=40
setfillcolor(RGB(64,224,208));//填充颜色
solidcircle(400,100,50);//画圆: 实心圆 中间填充颜色 无边缘线 圆心=(400,100) 半径=50
#endif
IMAGE img;//定义变量 存放图片
loadimage(&img,"a.jpg");//加载图片 IMAGE变量地址 第二个图片的路径(相对绝对都可以) 第三个第四个是加载的图片的大小(可以不管,按照图片原始大小加载)
putimage(0,0,&img);//贴图 贴图位置(0,0)+贴图变量的地址
//贴图的位置 坐标可以是负数
//也可以直接将图片放到与,cpp文件同目录下 输入时直接写图片名称就可以了
//图片贴不出来 先试试结对路径 绝对路径也不行那就是图片的问题 绝对路径可以 那就是相对路径写错了
getchar();
closegraph();//关闭窗口
return 0;
}
//getch和getchar斗志获取字符串
//但是getchar要按下回车才会有反应getch直接读取
//#if 0 和 #endif 可以用来阻止运行 想要运行的时候把0改为1就行
//加载ico文件 图标
程序示例运行结果




2018.05.22 22:03:44
C++学习(八)(C语言部分)之 图形库的更多相关文章
- 值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工 ...
- 【C/C++开发】值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- Python Tutorial 学习(八)--Errors and Exceptions
Python Tutorial 学习(八)--Errors and Exceptions恢复 Errors and Exceptions 错误与异常 此前,我们还没有开始着眼于错误信息.不过如果你是一 ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
随机推荐
- react之传递数据的几种方式props传值、路由传值、状态提升、redux、context
react之传递数据的几种方式 1.父子传值 父传值:<子的标签 value={'aaa'} index={'bbb'}></子的标签> 子接值:<li key={thi ...
- 微信公众号 access_token 没有过期 却失效
最近在开发微信项目的时候 access_token 缓存到 redis里面的,明明在两个小时的有效期内 微信却提示 "errcode":40001,"errmsg& ...
- 尚学堂java 参考答案 第七章
本答案为本人个人编辑,仅供参考,如果读者发现,请私信本人或在下方评论,提醒本人修改 一.选择题 1.ACD 解析:B:java中左边不能直接直接指定长度,和C语言不一样 2.B 3.C 解析:B各行分 ...
- 前端基础之JavaScript进阶
一.流程控制 if - else var a = 10; if (a >5){ console.log("yes"); }else { console.log("n ...
- c语言中printf("%x",-1);为什么会输出-1的十六进制补码??
计算机存储的时候是以补码的形式存进去的,输出来在以你原码的形式输出(这个形式就是你设置的形式)! 比如: -1 (32位模式) 存: 1 000000000000000000000000000000 ...
- sys.argv]的用法
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...
- SQL-8 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
题目描述 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示CREATE TABLE `salaries` (`emp_n ...
- SQLite3 C/C++ 开发接口简介
SQLite3 C/C++ 开发接口简介 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和 ...
- go语言基础学习
go基础学习,面向对象-方法在Go语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法 使用= 和:=的区别: // = 使用必须使用先var声明例如: var a a=100 ...
- string使用方法
转载自:https://blog.csdn.net/tengfei461807914/article/details/52203202 使用场合: string是C++标准库的一个重要的部分,主要用于 ...