用C++写一个控制台跳动的红心跳动代码

月亮慢半拍
月亮慢半拍
发布时间:2026-10-16| 4人浏览过
原创

本文介绍如何使用 C++ 在控制台输出一个会跳动的红色爱心。核心原理是利用数学公式判断坐标点是否位于心形区域内,并通过循环、清屏和延时函数实现大小爱心交替闪烁的动画效果。文章包含完整的编译运行说明及关键代码解析。

运行效果与实现原理

在终端或控制台中,通过黑白字符(如 x)绘制几何图形需要精确控制每个字符的位置。本例展示了一个动态跳动的心形动画:首先缓慢生成一个大爱心轮廓,随后在大爱心与小爱心之间快速切换,配合红色文字颜色设置,形成视觉上的“跳动”感。

程序的逻辑主要包含两个阶段:

  1. 初始绘制:逐行打印大爱心,每行打印后短暂停顿,模拟绘制过程。
  2. 跳动循环:进入死循环,利用 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++ 实例教程的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。