C/C++图型化编程

一、创建图形化窗口:

1.包含头文件:

  • graphics.h:包含已经被淘汰的函数
  • easyx.h:只包含最新的函数

2.两个函数就可以创建窗口: 

  • 打开:initgraph(int x,int y,int style);
  • 关闭:closegraph();

3.窗口坐标的设置:

横向x坐标

纵向y坐标

#include<stdio.h>
#include<graphics.h>

int main() {
	initgraph(800, 600, 1);
	while (1);
	closegraph();
	return 0;
}

二、 设置图形窗口属性:

颜色设置:

  • 设置线条颜色      setlinecolor(颜色);
  • 设置背景颜色      setbkcolor(颜色);
    • 颜色宏:颜色的英语大写单词
      • RGB配置:三原色 
        • 绿色        RGB(13,242,24) 
  • 刷新
    • cleardevice();
    • #include<stdio.h>
      #include<graphics.h>
      
      int main() {
      	initgraph(800, 600, 1);
      
      	setbkcolor(RED);
      	cleardevice();
      
      
      	while (1);
      	closegraph();
      	return 0;
      }

三、使用Easyx实现基本绘图功能(基本绘图函数):

  • 线        line(int x,int y,int xx,int yy);
  • 圆        circle(int x,int y,int r);
    •  填充圆      设置填充颜色-->setfillcolor();
      • 带线:filercircle(int x,int y,int r);
      • 不带线:solidcircle(int x,int y,int r);
  •  矩形          rectangle(int x,int y,int xx,int yy);
    •  填充矩形      设置填充颜色-->setfillcolor();
      • 带线:filerectangle(int x,int y,int xx,int yy);
      • 不带线:solidrectangle(int x,int y,int xx,int yy);

 例:画棋盘。

#include<graphics.h>

void Draw() {
	//画棋盘
	initgraph(400, 400);
	setbkcolor(RGB(63, 114, 233));
	setlinecolor(BLACK);
	cleardevice();
	for (int i = 0; i <= 400; i += 20) {
		line(0, i, 400, i);
		line(i, 0, i, 400);
	}		
	while (1);
	closegraph();
}

int main() {
	Draw();
	return 0;
}

 

四、鼠标交互:

五、按键交互:

六、使用Easyx实现贴图功能:

  • 原样贴图      图像是什么样就怎么贴
    • IMAGE变量去表示图片
    • 加载图像
      • loadimage(IMAGE*img,URL);       
      • loadimage(IMAGE*img,URL,int width,int height); 
    • 显示图像
      • putimage(int x,int y,IMAGE*img);          

  

  • 透明贴图      去背景的贴图
    • 通过图像的颜色二进制运算达到去背景的效果
    • 认识素材
      • 掩码图
      • 背景图
    • 按照特定步骤贴图即可
      • SECAND        位与
      • SECPAINT       位或
  • png贴图        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/267491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【眼镜】相关知识

眼镜相关 配眼镜可以事先了解的事情&#xff1a; 折射率&#xff1a;先说结论&#xff0c;高度数可以考虑选高折射率&#xff0c;低度数没必要。 折射率&#xff1a;1.50折射率 1.56折射率 1.60折射率 1.67折射率 1.71折射率 1.74折射率. 折射率越高&#xff0c;镜片越薄&a…

全面理解Stable Diffusion采样器

全面理解Stable Diffusion采样器 原文&#xff1a;Stable Diffusion Samplers: A Comprehensive Guide 在 AUTOMATIC1111 的 SD webui 中&#xff0c;有许多采样器&#xff08;sampler&#xff09;&#xff0c;如 Euler a&#xff0c;Heun&#xff0c;DDIM&#xff0c;… 什么是…

应急响应中的溯源方法

在发现有入侵者后&#xff0c;快速由守转攻&#xff0c;进行精准地溯源反制&#xff0c;收集攻击路径和攻击者身份信息&#xff0c;勾勒出完整的攻击者画像。 对内溯源与对内溯源 对内溯源&#xff1a;确认攻击者的行为 &#xff0c;分析日志 数据包等&#xff1b; 对外溯源&…

图像随机裁剪代码实现

原理 在计算机视觉领域&#xff0c;深度学习模型通常需要大量的训练数据才能获得良好的性能。然而&#xff0c;在实际应用中&#xff0c;我们可能面临训练数据不足的问题。为了解决这一问题&#xff0c;可以使用数据增强技术来扩充数据集。随机图像裁剪是其中一种简单而有效的…

系列十四、SpringBoot + JVM参数配置实战调优

一、SpringBoot JVM参数配置实战调优 1.1、概述 前面的系列文章大篇幅的讲述了JVM的内存结构以及各种参数&#xff0c;今天就使用SpringBoot项目实战演示一下&#xff0c;如何进行JVM参数调优&#xff0c;如果没有阅读过前面系列文章的朋友&#xff0c;建议先阅读后再看本篇文…

Windows系统安装 ffmpeg

下载及解压 ffmpeg官方下载地址&#xff1a;https://ffmpeg.org/download.html 下载好后将其解压至你想保存的位置中。 环境变量设置 打开Windows设置&#xff0c;在搜索框输入&#xff1a;系统高级设置。 新建环境变量&#xff0c;并输入bin目录具体位置。 安装检查 按住 w…

人工智能:从基础到前沿

人工智能&#xff1a;从基础到前沿 引言 当我们谈论“人工智能”&#xff08;AI&#xff09;时&#xff0c;我们其实是在谈论一个涵盖了众多学科、技术和应用的广阔领域。从计算机视觉到自然语言处理&#xff0c;从机器人学到深度学习&#xff0c;AI已经成为我们生活中不可或…

电脑上添加不了网络打印机的所有可能的原因,在这里差不多都能找到

在电脑上添加网络打印机通常很容易,但如果Windows无法很好识别或根本找不到它们呢?以下是一些快速解决方案。 无论你是升级到Windows 11还是仍在使用Windows 10,连接无线打印机都应该很容易。Windows应该能够自动连接到与你的电脑位于同一网络上的任何打印机。但有时,Windo…

大数据Doris(四十):聚合模型的局限性和ROLLUP的说明

文章目录 聚合模型的局限性和ROLLUP的说明 一、聚合模型的局限性

linux内存寻址原来那么简单

内存寻址 内存寻址听起来高大上&#xff0c;其实真实处理起来很简单&#xff0c;以常见的80x86架构为例&#xff0c;有三种不同的地址&#xff1a; 逻辑地址线性地址物理地址 内存控制单元(MMU)通过分段单元的硬件电路把一个逻辑地址转化为线性地址&#xff0c;通过分页单元的…

单例模式(C++实现)

RAII运用 只能在栈上创建对象 只能在堆上创建的对象 单例模式 设计模式 懒汉模式 解决线程安全 优化 饿汉模式 饿汉和懒汉的区别

Vue3学习(后端开发)

目录 一、安装Node.js 二、创建Vue3工程 三、用VSCode打开 四、源代码目录src 五、入门案例——手写src 六、测试案例 七、ref和reactive的区别 一、安装Node.js 下载20.10.0 LTS版本 https://nodejs.org/en 使用node命令检验安装是否成功 node 二、创建Vue3工程 在…

C语言--if...else语句【语法讲解】

一.if...else语句的介绍 if…else 语句是编程中常用的一种分支语句&#xff0c;用于根据条件执行不同的操作。 它的基本语法如下&#xff1a; if (条件表达式) {// 当条件表达式为真时执行的代码块 } else {// 当条件表达式为假时执行的代码块 } 当条件表达式为真时&#xff…

互联网上门洗衣洗鞋小程序优势有哪些?

互联网洗鞋店小程序相较于传统洗鞋方式&#xff0c;具有以下优势&#xff1b; 1. 便捷性&#xff1a;用户只需通过手机即可随时随地下单并查询&#xff0c;省去了许多不必要的时间和精力。学生们无需走出宿舍或校园&#xff0c;就能轻松预约洗鞋并取件。 2. 精准定位&#xff1…

前菜---二叉树+堆的小练习

目录 前言&#x1f3dc;️ 1. 二叉树性质总结⛱️ 1.2 性质3⏰ 2. 二叉树性质小练习&#x1f3d5;️ 3. 答案解析&#x1f4a1; 4. 堆概念结构小练习&#x1fa94; 5. 答案解析&#x1f9ff; 6. 前/中/后/层序遍历小练习&#x1f52b; 7. 答案解析&#x1f9fa; 后语…

祝大家圣诞节快乐

同时庆祝 JWFD 20周年

c++代码寻找USB00端口并添加打印机

USB00*端口的背景 插入USB端口的打印机&#xff0c;安装打印机驱动&#xff0c;在控制面板设备与打印机处的打印机对象上右击&#xff0c;可以看到打印机端口。对于不少型号&#xff0c;这个端口是USB001或USB002之类的。 经观察&#xff0c;这些USB00*端口并不是打印机驱动所…

Seata 序列化问题

异常&#xff1a; com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Type id handling not implemented for type java.lang.Object (by serializer of type com.fasterxml.jackson.databind.ser.impl.UnsupportedTypeSerializer) (through reference chain: i…

新建项目EasyUiAutotest,安装Appium-Python-Client

一、前置说明 Appium-Python-Client 是 Appium 的 Python 客户端库&#xff0c;它提供了一系列的类和方法&#xff0c;用于与 Appium 服务器进行通信&#xff0c;并执行各种移动应用测试操作&#xff0c;包括启动应用、模拟用户输入、点击等操作。 二、操作步骤 1. 启动Pych…

Exynos4412 移植Linux-6.1(九)移植tiny4412_backlight驱动的过程及问题解决

系列文章目录 Exynos4412 移植Linux-6.1&#xff08;一&#xff09;下载、配置、编译Linux-6.1 Exynos4412 移植Linux-6.1&#xff08;二&#xff09;SD卡驱动——解决无法挂载SD卡的根文件系统 Exynos4412 移植Linux-6.1&#xff08;三&#xff09;SD卡驱动——解决mmc0: Ti…