有关图形库的学习笔记

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语言部分)之 图形库的更多相关文章

  1. 值得学习的C语言开源项目

    值得学习的C语言开源项目   - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工 ...

  2. 【C/C++开发】值得学习的C语言开源项目

    值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...

  3. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  4. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  5. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  6. Python Tutorial 学习(八)--Errors and Exceptions

    Python Tutorial 学习(八)--Errors and Exceptions恢复 Errors and Exceptions 错误与异常 此前,我们还没有开始着眼于错误信息.不过如果你是一 ...

  7. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  8. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  9. SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  10. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

随机推荐

  1. linux下详解shell中>/dev/null 2>&1

    前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...

  2. Linux第八周作业

    一 理解编译链接的过程和ELF可执行文件格式 这张图说明了可执行程序的产生 大致过程为 .c文件汇编成汇编代码.asm, 然后再汇编成目标码.o, 然后链接成可执行文件a.out, 这时可执行文件就可 ...

  3. H5 PWA技术以及小demo

    H5 PWA技术 1.原生app优缺点 a.体验好.下载到手机上入口方便 b.开发成本高(ios和安卓) c.软件上线需要审核 d.版本更新需要将新版本上传到不同的应用商店 e.使用前需下载 2.we ...

  4. Kafka.net使用编程入门(二)

    1.首先创建一个Topic,命令如下: kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partit ...

  5. 《Python》网络编程基础

    计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...

  6. C语言进度条实现。(转)

    #include <stdio.h> #include <windows.h> //跟新进度条函数 /* * 每传入一个参数就刷新一次进度条 * 当i*<=percent ...

  7. Spring框架的四大原则

    Spring框架本身有四大原则: 1).使用POJO进行轻量级和最小入侵式开发 2).通过以来注入和基于接口编程实现松耦合 3).通过AOP和默认习惯进行声明式编程 4).使用AOP和模板减少模式化代 ...

  8. 关于MEX函数的说明

    reference:http://www.mathworks.com/help/matlab/ref/mex.html .MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序 ...

  9. 无法获取 vmci 驱动程序版本: 句柄无效

    https://jingyan.baidu.com/article/a3a3f811ea5d2a8da2eb8aa1.html 将 vmci0.present = "TURE" 改 ...

  10. 虚拟机中扩展linux系统存储空间

    reference: https://blog.csdn.net/greenapple_shan/article/details/52799631 https://blog.csdn.net/lyd1 ...