当前位置:首页 » 《随便一记》 » 正文

C/C++跳动的爱心代码

20 人参与  2024年09月06日 09:26  分类 : 《随便一记》  评论

点击全文阅读


系列文章

序号直达链接
1C/C++爱心代码
2C/C++跳动的爱心
3C/C++李峋同款跳动的爱心代码
4C/C++满屏飘字表白代码
5C/C++大雪纷飞代码
6C/C++烟花代码
7C/C++黑客帝国同款字母雨
8C/C++樱花树代码
9C/C++奥特曼代码
10C/C++圣诞树代码

写在前面

C语言实现简单版的跳动的红色爱心。

语言需求:C语言

环境需求:DevCpp

完整代码

#include <stdio.h>#include <math.h>#include <windows.h>#include <tchar.h>float f(float x, float y, float z) {float a = x * x + 9.0f / 4.0f * y * y + z * z - 1;return a * a * a - x * x * z * z * z - 9.0f / 80.0f * y * y * z * z * z;}float h(float x, float z) {for (float y = 1.0f; y >= 0.0f; y -= 0.001f)if (f(x, y, z) <= 0.0f)return y;return 0.0f;}int main() {    ……}

代码分析

这段代码实现了一个跳动的爱心图案的动画效果,下面是代码的详细分析。

1.引入了需要的头文件

#include <stdio.h>#include <math.h>#include <windows.h>#include <tchar.h>

2.定义了两个函数

float f(float x, float y, float z):计算指定坐标点(x, y, z)处的函数值。该函数的计算公式是 (x * x + 9.0f / 4.0f * y * y + z * z - 1) * (x * x + 9.0f / 4.0f * y * y + z * z - 1) * (x * x + 9.0f / 4.0f * y * y + z * z - 1) - x * x * z * z * z - 9.0f / 80.0f * y * y * z * z * zfloat h(float x, float z):根据给定的 x 和 z 坐标,求出在相应平面上的 y 坐标。该函数通过迭代计算从 y=1.0f 逐渐减小到 y=0.0f,找到满足函数 f(x, y, z)<=0 的最小 y 值。

3.定义主函数 int main()

设置控制台的颜色和大小。获取控制台窗口句柄并获取窗口的位置和大小信息。计算窗口在屏幕中应该出现的位置,并使用 SetWindowPos 函数设置窗口位置。进入一个无限循环来实现动画效果。在每次循环中,先清空缓冲区 buffer。使用一个变量 t 作为时间变量,每轮循环增加 0.1f,用于控制爱心的跳动速度。使用变量 s 计算 sin(t) 的平方,作为爱心的大小因子。使用变量 a 计算 s^4 * 0.2f,作为爱心的形状调整因子。遍历 z 坐标,从 1.3f 到 -1.2f,步长为 0.1f。在每个 z 坐标下,遍历 x 坐标,从 -1.5f 到 1.5f,步长为 0.05f。计算当前点 (x, 0.0f, z) 的函数值 v。如果 v <= 0,说明当前点在爱心的内部,需要绘制到缓冲区。计算当前点 (x, 0.0f, z) 对应的曲面上的 y 坐标 y0。计算当前点在 x 方向和 z 方向上的梯度 ny 和 nz。根据梯度计算法向量的长度并标准化。计算当前点的深度值 d,用来选择合适的字符来绘制。将计算得到的字符存储到缓冲区 buffer 中。将缓冲区的内容输出到控制台。通过调用 Sleep 函数控制动画的帧率。

总结:这段代码通过使用函数计算和动态绘制,实现了一个跳动的爱心图案的动画效果。

写在后面

我是一只有趣的兔子,感谢你的喜欢! 


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/156023.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 高分_李象小说(大唐之最强皇太孙)(李象)全本完整阅读
  • 他在回忆尽头::结局+番外评价五颗星-许清梨贺南舟:结局+番外新上热文
  • 叶薇,萧逸璃纹双璧,情定此生电子书+番外篇章+(璃纹双璧,情定此生)免费版在线阅读
  • 林蔓枝,墨冽完结篇(身怀空间,我在兽世荒漠养兽夫)章节:结局+番外评价五颗星
  • 我被虐杀装进花瓶后,跪求我出山的首富悔疯了林璐璐,沈崇山,沈耀+后续+番外必读文-(我被虐杀装进花瓶后,跪求我出山的首富悔疯了)林璐璐,沈崇山,沈耀后续+番外精编之作笔趣阁
  • 季先生,您前妻算卦超灵!最新章节_白笙季云霆看点十足_小说后续在线阅读_无删减免费完结_
  • 恶雌会读心?五个兽夫追着我求宠阮阮:+后续+番外+附加(阮阮)清爽版阅读
  • 璃纹双璧,情定此生全篇完整在线阅读(叶薇,萧逸)热门章节列表
  • 静默奔溃无广告阅读_沈铮静姐陈静精心编著_小说后续在线阅读_无删减免费完结_
  • 男友装穷考验我99次,我转身继承首(谢先生,谢邸,谢夫人)全书免费_(谢先生,谢邸,谢夫人)男友装穷考验我99次,我转身继承首后续(谢先生,谢邸,谢夫人)
  • 被吃绝户?侯门主母二嫁权臣(裴轻寂,沈荣宁):结局+番外评价五颗星
  • 为了给养妹拍纪录片,男友让我去演陪酒妹全文+后续_弟弟许寒许安然每日分享_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1