C++番外篇之动态爱心代码

这篇具有很好参考价值的文章主要介绍了C++番外篇之动态爱心代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:今天我们给大家介绍一个有趣的代码,那就是爱心代码,前提是这段代码要先下载一个东西,就是有关C++头文件的,这段代码各位看看就好,当个乐子,因为涉及的代码知识很多。如果大家有兴趣研究的,可以把整段代码看一看。

下面直接先展现代码了:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <graphics.h>//这个头文件需要下载一个软件
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include<conio.h>
struct Point {
    double x, y;
    COLORREF color;
};

COLORREF colors[7] = { RGB(255,32,83),RGB(252,222,250), RGB(255,0,0), RGB(255,0,0), RGB(255,2,2), RGB(255,0,8),  RGB(255,5,5) };
const int xScreen = 1200;
const int yScreen = 800;
const double PI = 3.1426535159;
const double e = 2.71828;
const double averag_distance = 0.162;
const int quantity = 506;
const int circles = 210;
const int frames = 20;
Point origin_points[quantity];
Point points[circles * quantity];
IMAGE images[frames];

double screen_x(double x)
{
    x += xScreen / 2;
    return x;
}


double screen_y(double y)
{
    y = -y + yScreen / 2;
    return y;
}


int creat_random(int x1, int x2)
{
    if (x2 > x1)
        return rand() % (x2 - x1 + 1) + x1;
}

void creat_data()
{
    int index = 0;
    double x1 = 0, y1 = 0, x2 = 0, y2 = 0;
    for (double radian = 0.1; radian <= 2 * PI; radian += 0.005)
    {
        x2 = 16 * pow(sin(radian), 3);
        y2 = 13 * cos(radian) - 5 * cos(2 * radian) - 2 * cos(3 * radian) - cos(4 * radian);
        double distance = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
        if (distance > averag_distance)
        {
            x1 = x2, y1 = y2;
            origin_points[index].x = x2;
            origin_points[index++].y = y2;
        }
    }


    index = 0;
    for (double size = 0.1, lightness = 1.5; size <= 20; size += 0.1)
    {
        double success_p = 1 / (1 + pow(e, 8 - size / 2));
        if (lightness > 1)lightness -= 0.0025;

        for (int i = 0; i < quantity; ++i)
        {
            if (success_p > creat_random(0, 100) / 100.0)
            {
                points[index].color = colors[creat_random(0, 6)];
                points[index].x = size * origin_points[i].x + creat_random(-4, 4);
                points[index++].y = size * origin_points[i].y + creat_random(-4, 4);
            }
        }
    }

    int points_size = index;

    for (int frame = 0; frame < frames; ++frame)
    {
        images[frame] = IMAGE(xScreen, yScreen);
        SetWorkingImage(&images[frame]);

        for (index = 0; index < points_size; ++index)
        {
            double x = points[index].x, y = points[index].y;
            double distance = sqrt(pow(x, 2) + pow(y, 2));
            double diatance_increase = -0.0009 * distance * distance + 0.35714 * distance + 5;
            double x_increase = diatance_increase * x / distance / frames;
            double y_increase = diatance_increase * y / distance / frames;
            points[index].x += x_increase;
            points[index].y += y_increase;
            setfillcolor(points[index].color);
            solidcircle(screen_x(points[index].x), screen_y(points[index].y), 1);

        }

        for (double size = 17; size < 23; size += 0.3)
        {
            for (index = 0; index < quantity; ++index)
            {
                if ((creat_random(0, 100) / 100.0 > 0.6 && size >= 20) || (size < 20 && creat_random(0, 100) / 100.0 > 0.95))
                {
                    double x, y;
                    if (size >= 20)
                    {
                        x = origin_points[index].x * size + creat_random(-frame * frame / 5 - 15, frame * frame / 5 + 15);
                        y = origin_points[index].y * size + creat_random(-frame * frame / 5 - 15, frame * frame / 5 + 15);
                    }
                    else
                    {
                        x = origin_points[index].x * size + creat_random(-5, 5);
                        y = origin_points[index].y * size + creat_random(-5, 5);
                    }

                    setfillcolor(colors[creat_random(0, 6)]);
                    solidcircle(screen_x(x), screen_y(y), 1);
                }


                for (double size = 17; size < 23; size += 0.3)
                {
                    for (index = 0; index < quantity; ++index)
                    {
                        if ((creat_random(0, 100) / 100.0 > 0.6 && size >= 20) || (size < 20 && creat_random(0, 100) / 100.0 > 0.95))
                        {
                            double x, y;
                            if (size >= 20)
                            {
                                x = origin_points[index].x * size + creat_random(-frame * frame / 5 - 15, frame * frame / 5 + 15);
                                y = origin_points[index].y * size + creat_random(-frame * frame / 5 - 15, frame * frame / 5 + 15);
                            }
                            else
                            {
                                x = origin_points[index].x * size + creat_random(-5, 5);
                                y = origin_points[index].y * size + creat_random(-5, 5);
                            }
                            setfillcolor(colors[creat_random(0, 6)]);
                            solidcircle(screen_x(x), screen_y(y), 1);
                        }
                    }
                }
            }
        }
    }
}


int main()
{
    initgraph(xScreen, yScreen);
    BeginBatchDraw();
    srand(time(0));
    creat_data();
    SetWorkingImage();
    bool extend = true, shrink = false;
    for (int frame = 0; !_kbhit();)
    {
        putimage(0, 0, &images[frame]);
        FlushBatchDraw();
        Sleep(20);
        cleardevice();
        if (extend)
            frame == 19 ? (shrink = true, extend = false) : ++frame;
        else
            frame == 0 ? (shrink = false, extend = true) : --frame;

    }
    EndBatchDraw();
    closegraph();
    return 0;

}

这里是运行的情况c语言爱心代码动态,c语言,开发语言

#include <graphics.h>//这个头文件需要下载一个软件:下面讲解这个软件的安装:、

EasyX Graphics Library for C++

然后出来这个网址:

c语言爱心代码动态,c语言,开发语言

点继续

c语言爱心代码动态,c语言,开发语言

点右边下载

c语言爱心代码动态,c语言,开发语言

可以看到这个

然后打开

c语言爱心代码动态,c语言,开发语言

点击下一步:

c语言爱心代码动态,c语言,开发语言

然后上面看你C++编译器的类型和版本,这里我下载了VS2022和VS2019,所以直接安装第二个和三个。

然后重启编译器,就可以看到爱心代码了。文章来源地址https://www.toymoban.com/news/detail-753533.html

到了这里,关于C++番外篇之动态爱心代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ROS2系统学习番外篇2---用VSCode开发ROS2程序

    在ROS2系统学习3—第一个“Hello World”程序—即工作空间创建与包创建中已经介绍了如何创建ROS的工作空间以及包。在开发大型工程时,往往需要在IDE下面进行开发,因此本篇介绍使用VSCode来搭建ROS2开发环境的方法。 首先用VSCode打开ROS2的工作空间。 按Ctrl+shift+P进入命令模式

    2024年02月13日
    浏览(43)
  • C C++ Java python 分别写出不同表白girlfriend的爱心动态代码实现

    C `` #include stdio.h #include stdlib.h #include windows.h void heart_animation() { int i, j, k; for (i = 1; i = 6; i++) { for (j = -3; j = 3; j++) { for (k = -4; k = 4; k++) { if (abs(j) + abs(k) i * 2) { printf(“I”); } else { printf(\\\" “); } } printf(”n\\\"); } Sleep(500); system(“cls”); } } int main() { heart_animation(); return 0; } `` C++ `` 动态

    2023年04月09日
    浏览(49)
  • 爱心代码html或c++调用opengl库两种实现(二维三维动态也可键盘交互)

    最近打火机与公主裙电视剧追疯了!!!谁还没有李峋爱心代码!!快来领!!沉浸式追剧大学生今天午觉没睡怒干爱心代码现有三分资源如下: 效果: 1)、公主两个for循环二维C++控制台输出爱心; 2)、原创C++语言利用openGL库实现三维动态旋转粉色爱心; 以上两者可以在

    2024年02月13日
    浏览(64)
  • C语言、c++史上最全最全爱心代码大全,彩色闪动、字符填充,附源码

    直接上代码: 直接上代码 直接上代码 直接上代码

    2024年02月04日
    浏览(41)
  • python动态爱心代码完整版,python动态爱心代码简单

    大家好,本文将围绕python动态爱心代码红颜不简展开说明,python动态爱心代码怎么运行是一个很多人都想弄明白的事情,想搞清楚python动态爱心代码完整版需要先了解以下几个事情。 python动态心形代码操作方法如下: 1、新建文件python编辑器中,点隐棚击“File—NewFile”,新

    2024年02月08日
    浏览(45)
  • 第九章 番外篇:TORCHSCRIPT

    下文中的代码都使用参考教程中的例子。 会给出一点自己的解释。 参考教程: mixing-scripting-and-tracing script and optimize for mobile recipe https://pytorch.org/docs/stable/jit.html OPTIMIZING VISION TRANSFORMER MODEL FOR DEPLOYMEN 我们训练好并保存的pytorch,支持在python语言下的使用,但是不支持在一些

    2024年02月10日
    浏览(41)
  • 算法通关村番外篇-跳表

    大家好我是苏麟 , 今天来聊聊调表 . 跳表很少很少实现所以我们只了解就可以了 .  链表在查找元素的时候,因为需要逐一查找,所以查询效率非常低,时间复杂度是O(N),于是就出现了跳表。 跳表是在链表基础上改进过来的,实现了一种「多层」的有序链表 ,这样的好处是

    2024年02月01日
    浏览(38)
  • 番外篇-区块链基础知识入门

    今天聊聊番外篇之Web3、区块链的基础知识~ Hash算法 将输入的数据映射为一个固定长度的字符串 字符串是64长度,16进制(2^4),4 * 64 = 256 【SHA256】hash演示:https://andersbrownworth.com/blockchain/hash 区块 记录数据的一个section 问题:“挖矿”是在做什么(计算随机数是多少) 演示:

    2024年02月02日
    浏览(49)
  • Unity 事件番外篇:UnityEvent

    前置知识: C#委托 C#事件 简要概括:使用 UnityEvent 可以在编辑器的 Inspector 面板中为事件绑定事件触发函数。 下文将会着重介绍一些细节。 之前在介绍委托的时候有提到 UntiyAction,它是 Unity 对 C# Action 委托的一个封装。而本文将要介绍的 UnityEvent,则是对 C# 事件的一个封装

    2024年02月09日
    浏览(35)
  • 【flink番外篇】12、ParameterTool使用示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月18日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包