有关图形库的学习笔记

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. react之传递数据的几种方式props传值、路由传值、状态提升、redux、context

    react之传递数据的几种方式 1.父子传值 父传值:<子的标签 value={'aaa'} index={'bbb'}></子的标签> 子接值:<li key={thi ...

  2. 微信公众号 access_token 没有过期 却失效

    最近在开发微信项目的时候 access_token   缓存到 redis里面的,明明在两个小时的有效期内  微信却提示 "errcode":40001,"errmsg& ...

  3. 尚学堂java 参考答案 第七章

    本答案为本人个人编辑,仅供参考,如果读者发现,请私信本人或在下方评论,提醒本人修改 一.选择题 1.ACD 解析:B:java中左边不能直接直接指定长度,和C语言不一样 2.B 3.C 解析:B各行分 ...

  4. 前端基础之JavaScript进阶

    一.流程控制 if - else var a = 10; if (a >5){ console.log("yes"); }else { console.log("n ...

  5. c语言中printf("%x",-1);为什么会输出-1的十六进制补码??

    计算机存储的时候是以补码的形式存进去的,输出来在以你原码的形式输出(这个形式就是你设置的形式)! 比如: -1 (32位模式) 存: 1 000000000000000000000000000000 ...

  6. sys.argv]的用法

    Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...

  7. SQL-8 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示

    题目描述 找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示CREATE TABLE `salaries` (`emp_n ...

  8. SQLite3 C/C++ 开发接口简介

    SQLite3 C/C++ 开发接口简介 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和 ...

  9. go语言基础学习

    go基础学习,面向对象-方法在Go语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法 使用= 和:=的区别: // = 使用必须使用先var声明例如: var a a=100 ...

  10. string使用方法

    转载自:https://blog.csdn.net/tengfei461807914/article/details/52203202 使用场合: string是C++标准库的一个重要的部分,主要用于 ...