C++输出一个动态爱心
时间: 2023-07-13 14:11:54 浏览: 117
爱心源码,使用c/c++实现
以下是一个简单的 C++ 代码,可以输出一个动态的爱心:
```cpp
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
const int rows = 25, cols = 80;
char canvas[rows][cols];
int x = cols / 2, y = rows / 2;
while (true) {
double t = (double)clock() / CLOCKS_PER_SEC;
double a = 6 * sin(t);
double b = 3 * cos(t);
int px = round(x + a), py = round(y + b);
if (px >= 0 && px < cols && py >= 0 && py < rows) {
canvas[py][px] = '#';
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
double dx = j - x, dy = i - y;
double r = sqrt(dx * dx + dy * dy);
double angle = atan2(dy, dx);
double h = sin(r - t);
char c = ' ';
if (r < 14 && r > 13.5 && fabs(angle - t) < 0.5) {
c = 'O';
} else if (h > 0.5) {
c = '*';
} else if (h > -0.5) {
c = '.';
}
canvas[i][j] = c;
}
}
system("clear");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << canvas[i][j];
}
cout << endl;
}
}
return 0;
}
```
注意:这个程序需要在终端下运行。在 Windows 下可以使用 Cygwin 或 Git Bash 等终端模拟器,Mac 和 Linux 下则可以直接运行。
阅读全文