当前位置: 首页 > news >正文

C/C++绘制爱心

系列文章

序号直达链接
1C/C++爱心代码
2C/C++跳动的爱心
3C/C++李峋同款跳动的爱心代码
4C/C++满屏飘字表白代码
5C/C++大雪纷飞代码
6C/C++烟花代码
7C/C++黑客帝国同款字母雨
8C/C++樱花树代码
9C/C++奥特曼代码
10C/C++精美圣诞树
11C/C++俄罗斯方块
12C/C++贪吃蛇
13C/C++孤单又灿烂的神-鬼怪
14C/C++闪烁的爱心
15C/C++哆啦A梦
16C/C++简单圣诞树
17C/C++小宇宙
18C/C++冰墩墩
19C/C++七彩花朵
20C/C++玫瑰花
21C/C++小猪佩奇

写在前面

C/C++语言绘制一颗红色爱心的完整代码。

完整代码

#include <iostream>
#include <cmath>
#include <windows.h> // 用于 Windows API 绘图// 绘制心形的函数
void drawHeart(HDC hdc, int centerX, int centerY, int size) {for (int i = 0; i < 360; i++) {double angle = i * 3.14159 / 180;int x = static_cast<int>(size * 16 * pow(sin(angle), 3)) + centerX;int y = static_cast<int>(-size * (13 * cos(angle) - 5 * cos(2 * angle) - 2 * cos(3 * angle) - cos(4 * angle))) + centerY;SetPixel(hdc, x, y, RGB(255, 0, 0)); // 绘制红色像素点}
}int main() {int centerX = 400, centerY = 300, size = 15;// 获取控制台窗口的句柄并创建绘图设备上下文HWND consoleWindow = GetConsoleWindow();HDC hdc = GetDC(consoleWindow);// 绘制心形drawHeart(hdc, centerX, centerY, size);// 等待用户按键std::cout << "Press any key to exit...";std::cin.get();// 释放设备上下文ReleaseDC(consoleWindow, hdc);return 0;
}

代码分析

这段代码是用C++编写的一个小程序,通过Windows API实现了在控制台窗口上绘制一个心形图案。以下是对该代码的详细分析:

1. 代码结构概述

代码的主要部分包括:

  • drawHeart 函数:核心绘图逻辑,用于计算心形曲线上的点并绘制出来。

  • main 函数:负责调用绘图函数,完成绘图环境的设置和释放。

代码通过调用 Windows API 的 SetPixel 函数在控制台窗口上绘制像素点,将数学曲线转化为可见的心形图案。


2. 引用的头文件

#include <iostream>#include <cmath>#include <windows.h>
  • <iostream>:提供输入输出功能,如std::cout 和 std::cin

  • <cmath>:用于数学计算,例如pow(求幂)、sin(正弦)、cos(余弦)。

  • <windows.h>:提供Windows API的声明,如图形绘制函数SetPixel、获取窗口句柄的GetConsoleWindow等。


3. 绘制心形的数学原理

在 drawHeart 函数中,心形的绘制基于参数方程:

  1. 心形的参数方程

    • ( x = 16 \sin^3(t) )

    • ( y = 13 \cos(t) - 5 \cos(2t) - 2 \cos(3t) - \cos(4t) )

    其中,( t ) 为角度参数,以弧度为单位,范围是从 ( 0 ) 到 ( 2\pi )。

  2. 调整和比例

    • 为了适应窗口坐标系的绘制,这里进行了如下变换:
      • ( x ):加上中心点横坐标 centerX,将心形移动到窗口中心。

      • ( y ):加上中心点纵坐标 centerY,并取负值实现正确的坐标翻转(屏幕坐标系中y轴向下,而数学坐标系中y轴向上)。

  3. 绘制像素点

    • 使用SetPixel函数将每个计算出的坐标点绘制成红色像素。

代码片段如下:​​​​​​​

double angle = i * 3.14159 / 180; // 角度转弧度int x = static_cast<int>(size * 16 * pow(sin(angle), 3)) + centerX;int y = static_cast<int>(-size * (13 * cos(angle) - 5 * cos(2 * angle) - 2 * cos(3 * angle) - cos(4 * angle))) + centerY;SetPixel(hdc, x, y, RGB(255, 0, 0));

4. Windows API 的使用

(1) 获取控制台窗口句柄
HWND consoleWindow = GetConsoleWindow();
  • GetConsoleWindow:获取当前控制台窗口的句柄(一个唯一标识窗口的值)。

(2) 创建绘图设备上下文
HDC hdc = GetDC(consoleWindow);
  • GetDC:从指定的窗口句柄中获取设备上下文(HDC),用于绘图操作。

(3) 绘制像素点
SetPixel(hdc, x, y, RGB(255, 0, 0));
  • SetPixel:在指定位置 (x, y) 上绘制一个指定颜色的像素点。
    • 第一个参数:设备上下文。

    • 第二、三个参数:像素点的横纵坐标。

    • 第四个参数:像素点的颜色(RGB值)。

(4) 释放设备上下文
ReleaseDC(consoleWindow, hdc);
  • 绘图完成后释放设备上下文,避免资源泄漏。


5. 函数设计

(1) drawHeart 函数
  • 参数
    • hdc:绘图设备上下文。

    • centerX 和 centerY:心形中心的坐标。

    • size:心形的缩放系数。

  • 功能
    • 遍历360个角度(以1度为步长),计算每个角度对应的心形曲线上点的坐标。

    • 使用 SetPixel 绘制这些点。

(2) main 函数
  • 设置绘图环境:
    • 定义心形中心点和缩放大小。

    • 获取控制台窗口句柄和设备上下文。

  • 调用 drawHeart 绘制心形。

  • 等待用户输入按键后结束程序。


6. 代码的优点

  1. 逻辑清晰
    • 函数化设计,绘图逻辑封装在 drawHeart 中,易于维护和扩展。

  2. 实现简单
    • 使用基本的数学公式和 Windows API 函数完成绘图任务,代码简洁明了。

  3. 交互性好
    • 使用控制台等待用户按键,方便查看绘制结果。


7. 总结

这段代码通过数学和编程的结合,将心形参数方程转换为图形化的结果,充分展示了数学在计算机图形学中的应用。代码逻辑清晰,适合用作学习Windows API图形编程的入门示例。但由于其绘图环境的限制以及跨平台问题,仍有进一步优化和扩展的空间。

写在后面

我是一只有趣的兔子,感谢你的喜欢!

相关文章:

C/C++绘制爱心

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/…...

架构师思维中的人、产品和技术

架构思维主要是一种以产品和业务为驱动的顶层解决问题的思维,需要同时考虑产品、人和技术3重关系,思维点需要同时落在三维体系中。虽然架构师很多时候做的工作其实只是分和合,即所谓的系统分拆及重新组合,但综合能力要求很高,需要同时具备思维的高度和深度,在思维抽象的同…...

数学知识1

人工智能的四要素是算法、算力、数据和场景&#xff0c;之所以能够智能&#xff0c;离不开长期发展的数学原理&#xff0c;人工智能背后强有力的支撑便是数学、物理等基础学科&#xff0c;本篇笔者浅谈、分享一下个人详学习人工智能的一个前期知识储备阶段对数学方面的积累&…...

git: 修改gitlab仓库提交地址

git: 修改gitlab仓库提交地址 右键git bash here 1、进入到项目my-project所在位置 2、查看当前项目远程仓库地址 3、修改远程仓库地址 4、再次查看新的远程仓库地址以确认修改成功 cd /my-project git remote -v # 查看当前远程仓库地址 git remote set-url origin 新的Gi…...

mac 安装node提示 nvm install v14.21.3 failed可能存在问题

如果你在 macOS 上使用 nvm&#xff08;Node Version Manager&#xff09;安装 Node.js 版本 v14.21.3 时遇到安装失败的问题&#xff0c;可以按照以下步骤进行排查和解决&#xff1a; 1. 确认 nvm 安装是否正确 首先&#xff0c;确认你的 nvm 是否正确安装&#xff0c;并且能…...

MySQL基础知识大总结

一&#xff0c;介绍 数据库是什么&#xff0c;我们在学习其他编程语言的时候会使用数组呀&#xff0c;链表&#xff0c;二叉树等等一些数据结构来存储我们的数据&#xff0c;但是大家有没有发现我们一旦关闭程序&#xff0c;所有的数据都没有了&#xff0c;这在发行的软件来看是…...

取石子游戏

取石子游戏 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; Alice 和 Bob 在玩一个古老的游戏。现在有若干堆石子&#xff0c;Alice 和 Bob 轮流取&#xff0c;每次可以 选择其中某一堆的石子中取出任意颗石子&#xff0c;但不能不取&#x…...

对象的大小

文章目录 一、对象大小 一、对象大小 对象是类实例化出来的&#xff0c;让我们分析一下类对象中哪些成员呢&#xff1f; 类实例化出的每个对象&#xff0c;每个都有独立的数据空间&#xff0c;所以对象中肯定包含 成员变量&#xff0c;那么成员函数是否包含呢&#xff1f; 首…...

基于Boost库的搜索引擎

本专栏内容为&#xff1a;项目专栏 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;基于Boots的搜索引擎 &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&#x1f69a; &#x1f339;&#x1f339;&#x1f339;关注我带你学习编程知识…...

springMVC 全局异常统一处理

全局异常处理⽅式⼀: 1、配置简单异常处理器 配置 SimpleMappingExceptionResolver 对象: <!-- 配置全局异常统⼀处理的 Bean &#xff08;简单异常处理器&#xff09; --> <bean class"org.springframework.web.servlet.handler.SimpleMappingExceptionReso…...

Java面试之多线程并发篇

前言 本来想着给自己放松一下&#xff0c;刷刷博客&#xff0c;突然被几道面试题难倒&#xff01;说一说自己对于 synchronized 关键字的了解&#xff1f;说说自己是怎么使用 synchronized 关键字&#xff1f;什么是线程安全&#xff1f;Vector是一个线程安全类吗&#xff1f;…...

我的创作之路:机缘、收获、日常与未来的憧憬

目录 前言机缘收获 日常成就一个优化后的二分查找实现 憧憬 前言 每个人的成长旅程都有它独特的轨迹&#xff0c;而我的这段技术创作之路&#xff0c;则源于一次再普通不过的项目分享。 机缘 一切的开始其实是偶然。在一次项目中&#xff0c;我遇到了一个棘手的问题&#xf…...

将服务器上的服务映射到本地使用

使用 win R &#xff0c;输入CMD打开命令行。 ssh -CNg -L 6666:127.0.0.1:8888 rooti-1.gpushare.com -p 53310 从右到左介绍&#xff1a; 53310&#xff1a;服务器的端口号。 i-1.gpushare.com&#xff1a;主机。 8888&#xff1a;服务器上服务所在的端口。 6666&…...

【C++动态规划 子集状态压缩】2002. 两个回文子序列长度的最大乘积|1869

本文涉及知识点 C动态规划 位运算、状态压缩、枚举子集汇总 LeetCode2002. 两个回文子序列长度的最大乘积 给你一个字符串 s &#xff0c;请你找到 s 中两个 不相交回文子序列 &#xff0c;使得它们长度的 乘积最大 。两个子序列在原字符串中如果没有任何相同下标的字符&…...

SQL注入--理论--堆叠注入

什么是堆叠注入&#xff1f; 在SQL语句操作的时候&#xff0c;每个语句都是以分号;标志结尾的。 在我们注入的过程中&#xff0c;通过使用多个分号同时进行多个SQL语句的注入&#xff0c;就是堆叠注入。 例如&#xff1a; ?inject1;handler 1919810931114514 open;handler 1…...

CSS —— 子绝父相

相对定位&#xff1a;占位&#xff1b;不脱标 绝对定位&#xff1a;不占位&#xff1b;脱标 希望子元素相对于父元素定位&#xff0c;又不希望父元素脱标&#xff08;父元素占位&#xff09; 子级是 绝对定位&#xff0c;不会占有位置&#xff0c; 可以放到父盒子里面的任何一…...

蓝桥杯不知道叫什么题目

小蓝有一个整数&#xff0c;初始值为1&#xff0c;他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如&#xff0c;如果整…...

IDEA如何快速地重写方法,如equals、toString等

前言 大家好&#xff0c;我是小徐啊。我们在使用IDEA的时候&#xff0c;有时候是需要重写equals和toString等方法的。这在IDEA中已经很方便的给我们准备好了快速的操作了。今天就来讲解一下。 如何重写 首先&#xff0c;打开要重写方法的文件&#xff0c;让鼠标定位到这个文…...

使用ENSP实现默认路由

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为2.2.2.1/24 ip address 2.2.2.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为1.…...

打造智能扩容新纪元:Kubernetes Custom Metrics深度解析

自定义指标:Kubernetes Auto Scaling的革命 1. 引言 1.1 Kubernetes与Auto Scaling Kubernetes作为当今容器编排的事实标准,提供了强大的自动化能力,其中Auto Scaling(自动扩缩容)是其核心特性之一。Auto Scaling允许Kubernetes集群根据当前负载动态调整资源,以应对不…...

网络安全工具软件 BlackICE

网络安全工具软件BlackICE的使用和设置说明简介(转)   BlackICE 在九九年获得了PC Magazine的技术卓越大奖&#xff0c;专家对它的评语是&#xff1a;“对于没有防火墙的家庭用户来说&#xff0c;BlackICE是一道不可缺少的防线&#xff1b;而对于企业网络&#xff0c;它又增加…...

深入解析分布式优化算法及其Python实现

目录 深入解析分布式优化算法及其Python实现第一部分:分布式优化算法的背景与原理1.1 什么是分布式优化算法?1.2 分布式优化算法的分类1.3 应用场景1.4 分布式优化的关键挑战第二部分:分布式优化算法的通用Python实现2.1 基本组件的实现第三部分:案例1 - 基于梯度下降的分布…...

互联网直播/点播EasyDSS视频推拉流平台视频点播有哪些技术特点?

在数字化时代&#xff0c;视频点播应用已经成为我们生活中不可或缺的一部分。监控技术与视频点播的结合正悄然改变着我们获取和享受媒体内容的方式。这一变革不仅体现在技术层面的进步&#xff0c;更深刻地影响了我们。 EasyDSS视频直播点播平台是一款高性能流媒体服务软件。E…...

打包多个python文件为exe

要使用PyInstaller打包多个Python文件为单个可执行文件(exe),需要执行以下步骤: 安装PyInstaller 如果尚未安装PyInstaller,请打开命令提示符或终端,输入以下命令进行安装: pip install pyinstaller进入Python脚本所在目录 使用命令行工具(如cmd或终端)导航到包含Python脚本…...

深入解析 EasyExcel 组件原理与应用

✨深入解析 EasyExcel 组件原理与应用✨ 官方&#xff1a;EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 在日常的 Java 开发工作中&#xff0c;处理 Excel 文件的导入导出是极为常见的需求。 今天&#xff0c;咱们就一起来深入了解一款非常实用的操作 Exce…...

基础免杀 从.rsrc加载shellcode上线

.rsrc 段是PE文件中的一个特定部分&#xff0c;专门用来存储资源数据。这些资源通常包括图标、位图、字符串表、对话框、菜单、版本信息、字体等 具体的shellcode加载方式不在此探讨 在这使用传统的指针执行 WindowsAPI 需要用到如下API FindResource 获取指定资源的信息块…...

Spring MVC 深度剖析:优势与劣势全面解读

文章目录 Spring MVC 优势1. **松耦合**2. **易于测试**3. **灵活性**4. **强大的配置机制**5. **异常处理**6. **国际化支持**7. **数据验证**8. **安全性**9. **性能优化** Spring MVC 劣势1. **学习曲线**2. **配置复杂性**3. **性能开销**4. **视图技术限制**5. **社区和支…...

基于Angular+BootStrap+SpringBoot简单的购物网站

目录 一、项目结构图 二、目录结构解析 后端 (Spring Boot) 前端 (Angular) 三、技术栈 四、具体功能实现 五、数据库设计 六、后端实现 1. 设置Spring Boot项目 2. 数据库实体类 3. 创建Repository 4. 创建Service层 5. 创建Controller层 七、前端实现&#xff0…...

微软Ignite 2024:建立一个Agentic世界!

在今年的Microsoft Ignite 2024上&#xff0c;AI Agent无疑成为本次大会的重点&#xff0c;已经有十万家企业通过Copilot Studio创建智能体了。微软更是宣布&#xff1a;企业可以在智能体中&#xff0c;使用Azure目录中1800个LLM中的任何一个模型了&#xff01; 建立一个Agent…...

AIGC实践-使用Amazon Bedrock的SDXL模型进行文生图

一、Bedrock 简介 Amazon Bedrock 是 Amazon Web Services (AWS) 提供的一种生成式 AI 服务。通过 Bedrock&#xff0c;用户可以方便地使用多种基础模型&#xff08;Foundation Models&#xff09;&#xff0c;包括 OpenAI 的 GPT、Anthropic 的 Claude 等。这些模型可以用于各…...

Android12 mtk设置插充电器自动开机

Android12 mtk平台通常关机后&#xff0c;插上充电器是进入关机充电流程&#xff0c;显示关机充电动画。 那么根据用户需求&#xff0c;如果需要设置关机之后&#xff0c;实现插上充电器后&#xff0c;自动开机。 正常流程&#xff1a;机器关机 --> 插上充电器 --> 显示…...

Linux高阶——1117—TCP客户端服务端

目录 1、sock.h socket常用函数 网络初始化函数 首次响应函数 测试IO处理函数 获取时间函数 总代码 2、sock.c SOCKET() ACCEPT()——服务端使用这个函数等待客户端连接 CONNECT()——客户端使用这个函数连接服务端 BIND()——一般只有服务端使用 LISTEN()——服务端…...

Linux 命令和 vi/vim 命令

Linux 命令概览 1. 文件和目录操作 列出目录内容 ls&#xff1a;列出当前目录内容ls -l&#xff1a;以长格式列出ls -a&#xff1a;显示隐藏文件ls -lh&#xff1a;以长格式和人类可读方式显示大小ls -R&#xff1a;递归列出子目录ls -d */&#xff1a;仅列出目录ls -t&#x…...

鸿蒙征文|鸿蒙心路旅程:始于杭研所集训营,升华于横店

始于杭研所 在2024年7月&#xff0c;我踏上了一段全新的旅程&#xff0c;前往风景如画的杭州&#xff0c;参加华为杭研所举办的鲲鹏&昇腾集训营。这是一个专门为开发者设计的培训项目&#xff0c;中途深入学习HarmonyOS相关技术。对于我这样一个对技术充满热情的学生来说&…...

【docker】docker commit 命令 将当前容器的状态保存为一个新的镜像

在Docker容器中安装了许多软件&#xff0c;并希望将当前容器的状态保存为一个新的镜像&#xff0c;可以使用docker commit命令来创建一个新的镜像。以下是如何操作的步骤&#xff1a; 找到容器ID或名称&#xff1a; 首先&#xff0c;需要找到想要保存的容器的ID或名称。可以使用…...

Java基础1.0

1.Java有哪些数据结构 Java语言是强类型语言&#xff0c;对于每一种数据都定义了明确的具体数据结构&#xff0c;在内存中分配了不同大小的内存空间。 基本数据结构 整数类型&#xff1a;byte&#xff0c;short&#xff0c;long&#xff0c;int。 字符类型&#xff1a;doub…...

完全二叉树的基本操作(顺序存储)

#include<iostream> #include<math.h> using namespace std;#define MaxSize 100 struct TreeNode {int value;bool isEmpty;//判断该节点是否为空 }t[MaxSize];/** *定义一个长度位MaxSize的数组&#xff0c;按照从上到下&#xff0c; *从左到右的方式依次存储完全…...

Vue Form表单的使用,rules格式校验网络校验,键盘按键监听

Form表单 rules格式校验 可以在validator中进行网络请求&#xff0c;实现网络校验 const formRules {userName: [{required: true, message: "用户名不能为空", trigger: blur}, {min: 5,max: 10,message: "长度必须5-10位",trigger: blur}],passWord: …...

PyTorch2

Tensor的常见操作&#xff1a; 获取元素值&#xff1a; 注意&#xff1a; 和Tensor的维度没有关系&#xff0c;都可以取出来&#xff01; 如果有多个元素则报错&#xff1b; import torch def test002():data torch.tensor([18])print(data.item())pass if __name__ &qu…...

蓝牙 AVRCP 协议详解

前言 随着无线音频设备的普及&#xff0c;蓝牙已经成为智能设备间通信的主流方式之一。除了传输音频流的 A2DP 协议外&#xff0c;AVRCP&#xff08;Audio/Video Remote Control Profile&#xff0c;音频/视频远程控制协议&#xff09;为用户提供了对蓝牙音频设备的控制能力&am…...

深入解析下oracle char和varchar2底层存储方式

oracle数据库中&#xff0c;char和varchar2数据类型用来存储字符数据。char类型一旦定义多大&#xff0c;那么它就分配多少字节空间&#xff1b;varchar2类型定义多大&#xff0c;代表它可以扩展的最大大小为多大&#xff0c;一开始空间根据使用来决定。字符数据存储在oracle表…...

2024年底-Arch linux或转为0BSD许可证!

原文&#xff1a;https://archlinux.org/news/providing-a-license-for-package-sources/ 解读&#xff1a;Arch Linux社区通过RFC 40达成共识&#xff0c;决定将所有软件包源代码更改为0BSD许可证。 0BSD许可证是什么&#xff1f;&#xff1a;这是一个非常自由的开源许可证&a…...

YOLOv10改进,YOLOv10添加SE注意力机制,二次C2f结构

摘要 理论介绍 SE 注意力机制是一种提升卷积神经网络(CNN)性能的模块,SE更关注重要的特征图,增强了网络的表现,同时仅增加了较少的参数。SE 机制包含两个主要步骤: Squeeze (压缩):对所有特征图进行全局平均池化,生成一个通道描述符。Excitation (激励):将通道描述符…...

探索运维新视界,CMDB的3D机房功能深度解析

在数字化转型的浪潮中&#xff0c;数据中心作为企业信息架构的核心&#xff0c;其高效、智能的管理成为了企业竞争力的关键因素之一。3D机房作为这一趋势下的创新产物&#xff0c;正逐步改变着传统机房运维的面貌。本文将结合乐维CMDB&#xff0c;深入探讨3D机房的功能细节、应…...

[QDS]从零开始,写第一个Qt Design Studio到程序调用的项目

前言 最近在使用Qt Design Studio进行开发&#xff0c;但是简中网上要不就是只搜得到Qt Designer(Qt Creator内部库)&#xff0c;要不就只搜得到一点营销号不知道从哪里搬来的账号&#xff0c;鉴于Qt Design Studio是一个这么强大的软件&#xff0c;自然是需要来进行一下小小的…...

万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统

万物皆可Docker&#xff0c;在NAS上一键部署最新苹果MacOS 15系统 哈喽小伙伴们还&#xff0c;我是Stark-C~ 最近苹果Mac mini 2024款在政府补贴的加持下&#xff0c;仅需3500块钱左右就能到手确实挺香的。我看很多评论区的小伙伴跃跃欲试&#xff0c;但是也有不少之前从未体…...

视频监控实现画面缩放功能

文章目录 概要一、功能说明二、核心实现代码三、技术细节 概要 在视频监控系统中&#xff0c;经常需要查看视频画面中的细节。通过实现区域放大、滚轮缩放和拖拽平移等功能&#xff0c;可以让用户更方便地观察视频细节。本文介绍如何在 Windows 系统下实现这些交互功能。 一、…...

通信综合—8.通信网络安全

一、信息系统安全概述 1.信息系统的构成和分类 信息系统是将用于收集、处理、存储和传播信息的部件组织在一起而成的相关联的整体&#xff0c;般是由计算机硬件、网络和通信设备、计算机软件、信息资源和信息用户组成。它是以处理信息流为目的的人机一体化系统。信息系统主要…...

keepalived双机热备方案实现Nginx高可用

问题描述 只用一台Nginx做反向代理&#xff0c;如果这台Nginx出现故障(比如宕机)&#xff0c;则服务不可用。 以下给出keepalived双机热备方案实现Nginx高可用的方法。先介绍几个概念&#xff1a; 高可用 高可用&#xff08;High Availability&#xff09;是指系统或服务能…...

数据结构——排序算法第一幕(插入排序:直接插入排序、希尔排序 选择排序:直接选择排序,堆排序)超详细!!!!

文章目录 前言一、排序1.1 概念1.2 常见的排序算法 二、插入排序2.1 直接插入排序2.2 希尔排序希尔排序的时间复杂度 三、选择排序3.1 直接选择排序3.2 堆排序 总结 前言 时间很快&#xff0c;转眼间已经到数据结构的排序算法部分啦 今天我们来学习排序算法当中的 插入排序 和 …...