用C++写一个控制台跳动的红心跳动代码
本文介绍如何使用 C++ 在控制台输出一个会跳动的红色爱心。核心原理是利用数学公式判断坐标点是否位于心形区域内,并通过循环、清屏和延时函数实现大小爱心交替闪烁的动画效果。文章包含完整的编译运行说明及关键代码解析。
运行效果与实现原理
在终端或控制台中,通过黑白字符(如 x)绘制几何图形需要精确控制每个字符的位置。本例展示了一个动态跳动的心形动画:首先缓慢生成一个大爱心轮廓,随后在大爱心与小爱心之间快速切换,配合红色文字颜色设置,形成视觉上的“跳动”感。
程序的逻辑主要包含两个阶段:
- 初始绘制:逐行打印大爱心,每行打印后短暂停顿,模拟绘制过程。
- 跳动循环:进入死循环,利用
cls命令清空屏幕,根据奇偶性分别打印小爱心(停留较久)和大爱心(停留较短),产生节奏差异。
开发准备
由于涉及 Windows 特有的控制台 API 和命令,该项目主要基于 Windows 环境开发。
- 操作系统:Windows
- 编译器要求:需支持 C++11 及以上标准(推荐使用 Visual Studio, MinGW, 或支持 C++ 的 IDE 如 CLion/Dev-C++)。
- 依赖库:
<iostream>,<cmath>,<Windows.h>。
详细操作步骤
第1步:配置项目环境
新建一个 C++ 源文件,建议命名为 heartbeat.cpp。确保你的工程配置能够链接 Windows 静态库(通常默认即可)。
第2步:编写心形绘制逻辑
我们需要使用一个隐式方程来判定某个坐标 (x, y) 是否在爱心内部。常用的心形曲线方程为:
(x^2 + y^2 - 1)^3 - x^2 * y^3 <= 0
当计算结果小于等于 0 时,该点在爱心内;大于 0 则在外部。在控制台中,我们将爱心内部的坐标输出为字符 'x',外部输出空格。
第3步:整合完整代码
以下为完整源代码,复制并保存至工程中。
#include <iostream>
#include <cmath>
#include <Windows.h>
using namespace std;
// 大爱心慢速打印(模拟绘画过程)
void big_heart(){
double x_1, y_1, m_1, n_1;
for(y_1 = 1.5; y_1 > -1.5; y_1 -= 0.1){
for(x_1 = -1.5; x_1 <= 1.5; x_1 += 0.05){
m_1 = x_1*x_1 + y_1*y_1 - 1;
n_1 = pow(m_1, 3) - pow(x_1, 2)*pow(y_1, 3);
cout << (n_1 < 0 ? 'x' : ' ');
}
Sleep(100); // 每一行的延迟,制造绘制动效
cout << endl;
}
}
// 大爱心瞬间打印(用于跳动循环中的大心显示)
void big_heart_2(){
double x_1, y_1, m_1, n_1;
for(y_1 = 1.5; y_1 > -1.5; y_1 -= 0.1){
for(x_1 = -1.5; x_1 <= 1.5; x_1 += 0.05){
m_1 = x_1*x_1 + y_1*y_1 - 1;
n_1 = pow(m_1, 3) - pow(x_1, 2)*pow(y_1, 3);
cout << (n_1 < 0 ? 'x' : ' ');
}
cout << endl;
}
}
// 小爱心打印
void small_heart(){
double x, y, m, n;
for(y = 3.0; y > -3.0; y -= 0.2){
for(x = -3.0; x <= 3.0; x += 0.1){
m = x*x + y*y - 1;
n = pow(m, 3) - pow(x, 2)*pow(y, 3);
cout << (n < 0 ? 'x' : ' ');
}
cout << endl;
}
}
// 隐藏控制台光标,提升美观度
HANDLE han = GetStdHandle(-11);
void hide(){
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible = 0;
cursor.dwSize = 1;
SetConsoleCursorInfo(han, &cursor);
}
int main(){
hide();
system("color C"); // 设置前景色为红色(C),背景保持默认
// 先画一次大爱心作为开场
big_heart();
int a = 1;
while(true){ // 死循环实现持续跳动
system("cls"); // 清屏
if(a % 2 == 0){
small_heart();
Sleep(400); // 小心停留时间较长
}else{
big_heart_2();
Sleep(100); // 大心停留时间较短,形成视觉差
}
a++;
}
return 0;
}
第4步:编译与运行
打开命令行工具,进入代码所在目录,执行以下命令进行编译(以 G++ 为例):
g++ heartbeat.cpp -o heartbeat.exe
heartbeat.exe
或者在 IDE 中直接点击运行按钮。程序启动后会立即出现红色跳动爱心动画。
完成判断
成功运行后,你将看到以下现象确认代码无误:
- 控制台背景无光标闪烁。
- 由 'x' 组成的爱心呈现亮红色(取决于系统主题,通常为白底红字或黑底红光)。
- 爱心呈现明显的呼吸状大小交替变化,每秒约跳动 1-2 次。
以上就是 C++ 制作跳动爱心的详细内容,更多关于 C++ 实例教程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









