用c语言做一个爱心会动的代码
时间: 2024-05-08 10:16:08 浏览: 15
以下是一个用C语言实现爱心动画的示例代码:
```
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define PI 3.1415926535
int main()
{
int i, j, k, t;
double x, y, r;
double a[20], b[20], c[20], d[20], e[20], f[20];
srand((unsigned)time(NULL));
while (1)
{
t = rand() % 15 + 15;
for (i = 0; i < t; i++)
{
a[i] = (double)(rand() % 80 - 40) / 40.0;
b[i] = (double)(rand() % 80 - 40) / 40.0;
c[i] = (double)(rand() % 20 + 10) / 40.0;
d[i] = (double)(rand() % 10 + 10) / 40.0;
e[i] = (double)(rand() % 10 + 10) / 40.0;
f[i] = (double)(rand() % 20 + 10) / 40.0;
}
for (i = 0; i < 50; i++)
{
for (j = 0; j < 80; j++)
{
x = (double)(j - 40) / 40.0;
y = (double)(i - 25) / 25.0;
r = 0.0;
for (k = 0; k < t; k++)
{
r += c[k] * exp(-(pow((x - a[k]), 2) + pow((y - b[k]), 2)) / pow(d[k], 2));
}
if (r >= e[k])
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
Sleep(100);
system("cls");
}
return 0;
}
```
该程序使用随机生成的一组参数来绘制爱心,每隔一段时间就会重新生成一组参数,从而实现动态效果。程序使用了数学库中的exp和pow函数来计算二元高斯函数,将其作为爱心的形状。
注:该程序仅在Windows平台下运行,因为使用了Windows.h头文件中的Sleep和system函数。如果需要在其他平台下运行,需要替换这些函数。