devc 爱心动态代码编写 类似于《点燃我,温暖你》剧中李峋编写的爱心代码
时间: 2025-06-16 08:39:50 浏览: 9
### 红色跳动爱心动画的实现方法
以下是基于 Dev-C++ 的红色跳动爱心动画代码。该代码利用数学公式绘制爱心形状,并通过不断改变其大小和颜色来模拟心跳效果。
#### 完整代码示例
```cpp
#include <iostream>
#include <cmath>
#include <windows.h>
#include <conio.h>
using namespace std;
// 设置光标位置
void gotoxy(int x, int y) {
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
// 设置控制台文本颜色
void setTextColor(int color) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
// 绘制爱心的核心函数
void drawHeart(double scale) {
double t;
const double step = 0.01; // 控制精度
for (t = 0; t <= 2 * M_PI; t += step) {
double x = 16 * pow(sin(t), 3); // 爱心X轴公式
double y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t)); // 爱心Y轴公式
int px = round(x * scale + 40); // 调整到屏幕中心并缩放
int py = round(y * scale + 20);
gotoxy(px, py);
cout << "*";
}
}
int main() {
system("mode con cols=80 lines=40"); // 设置控制台大小
system("color F0"); // 设置背景颜色和字体颜色
double scale = 1.0; // 初始缩放比例
bool increasing = true; // 是否增加规模标志位
while (!_kbhit()) { // 循环直到按下键盘按键
Sleep(50); // 延迟时间调整动画速度
system("cls"); // 清屏
// 随机设置红色系的颜色
int redColor = rand() % 4 + 12; // 生成随机红色系颜色(范围:12-15)
setTextColor(redColor);
drawHeart(scale);
if (increasing) {
scale += 0.05; // 放大
if (scale >= 2.0) // 达到最大值时反转方向
increasing = false;
} else {
scale -= 0.05; // 缩小
if (scale <= 0.5) // 达到最小值时反转方向
increasing = true;
}
}
return 0;
}
```
#### 关键点解析
1. **`gotoxy` 函数**:用于定位控制台上的坐标位置,从而精确地打印字符以构成图像[^1]。
2. **`setTextColor` 函数**:借助 Windows API 中的 `SetConsoleTextAttribute` 方法更改文字颜色,此处特别选取了红色系的颜色以增强视觉冲击力[^2]。
3. **动态变化逻辑**:通过调节变量 `scale` 的数值以及布尔型变量 `increasing` 的状态转换,实现了爱心从小变大再恢复原状的过程,这一周期性的变动营造出了类似心脏搏动的感觉[^3]。
4. **退出条件设计**:采用 `_kbhit()` 函数监测用户的按键行为作为循环终止信号,给予使用者灵活的操作体验[^3]。
---
###
阅读全文
相关推荐


















