c语言

C语言实现动态爱心代码

小云
394
2023-08-22 17:48:04
栏目: 编程语言

以下是使用C语言实现动态爱心的示例代码:

#include <stdio.h>

#include <math.h>

#define PI 3.14159265358979323846

void printHeart(int x, int y, double scale);

int main() {

    int width = 40; // 爱心宽度

    int height = 20; // 爱心高度

    double scale = 1.0; // 缩放比例

    for (double t = 0.0; t <= 2 * PI; t += 0.1) {

        system("cls"); // 清空控制台(仅适用于Windows系统,Unix/Linux系统请使用system("clear"))

        // 计算爱心在屏幕中心的位置

        int x = width / 2 + width * sin(t) * sin(t) * sin(t);

        int y = height / 2 - height * cos(t) * cos(t) * cos(t);

        // 打印爱心

        printHeart(x, y, scale);

        // 延迟一段时间

        for (int i = 0; i < 10000000; i++) {}

    }

    return 0;

}

void printHeart(int x, int y, double scale) {

    int width = 40; // 爱心宽度

    int height = 20; // 爱心高度

    // 缩放爱心

    width *= scale;

    height *= scale;

    // 打印爱心

    for (int i = 0; i < height; i++) {

        for (int j = 0; j < width; j++) {

double distance1 = sqrt(pow((j - width / 4) / (double)(width / 4), 2) + pow((i - height / 4) / (double)(height / 4), 2));

double distance2 = sqrt(pow((j - 3 * width / 4) / (double)(width / 4), 2) + pow((i - height / 4) / (double)(height / 4), 2));

            if (distance1 + distance2 <= 1.42) {

                printf("*");

            } else {

                printf(" ");

            }

        }

        printf("\n");

    }

}

此代码在控制台上实现了一个动态的爱心效果,通过不断改变爱心的位置和大小来模拟动画效果。请注意,在Windows系统中使用system("cls")清空控制台,而在Unix/Linux系统中使用system("clear")。

0
看了该问题的人还看了