C 语言动态爱心代码

news/2024/12/21 3:25:32/

C 语言动态爱心代码

代码

#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() {system("color 0c");HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE);_TCHAR buffer[25][80] = { _T(' ') };_TCHAR ramp[] = _T(".:-=+*#%@");for(float t = 0.0f; ; t += 0.1f) {int sy = 0;float s = sinf(t), a = s * s * s * s * 0.2f;for(float z = 1.3f; z > -1.2f; z -= 0.1f) {_TCHAR* p = &buffer[sy++][0];float tz = z * (1.2f - a);for(float x = -1.5f; x < 1.5f; x += 0.05f) {float tx = x * (1.2f + a), v = f(tx, 0.0f, tz);if(v <= 0.0f) {float y0 = h(tx, tz), ny = 0.01f, nx = h(tx + ny, tz) - y0, nz = h(tx, tz + ny) - y0, nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz), d = (nx + ny - nz) * nd * 0.5f + 0.5f;*p++ = ramp[(int)(d * 5.0f)];}else {*p++ = ' ';}}}for(sy = 0; sy < 25; sy ++) {COORD coord = { 0, sy };SetConsoleCursorPosition(o, coord);WriteConsole(o, buffer[sy], 79, NULL, 0);}Sleep(33);}return 0;
}

http://www.ppmy.cn/news/1556809.html

相关文章

CSS系列(17)-- 工具与生态系统详解

前端技术探索系列&#xff1a;CSS 工具与生态系统详解 &#x1f6e0;️ 致读者&#xff1a;探索 CSS 开发工具链 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS 工具与生态系统&#xff0c;学习如何利用现代工具提升开发效率。 构建工具 &#x1f680; …

云原生周刊:Kubernetes v1.32 正式发布

开源项目推荐 Helmper Helmper 简化了将 Helm Charts导入OCI&#xff08;开放容器倡议&#xff09;注册表的过程&#xff0c;并支持可选的漏洞修复功能。它确保您的 Helm Charts不仅安全存储&#xff0c;还能及时应用最新的安全修复。该工具完全兼容 OCI 标准&#xff0c;能够…

用.Net Core框架创建一个Web API接口服务器

我们选择一个Web Api类型的项目创建一个解决方案为解决方案取一个名称我们这里选择的是。Net 8.0框架 注意&#xff0c;需要勾选的项。 我们找到appsetting.json配置文件 appsettings.json配置文件内容如下 {"Logging": {"LogLevel": {"Default&quo…

FPGA 16 ,Verilog中的位宽:深入理解与应用

目录 前言 一. 位宽的基本概念 二. 位宽的定义方法 1. 使用向量变量定义位宽 ① 向量类型及位宽指定 ② 位宽范围及位索引含义 ③ 存储数据与字节数据 2. 使用常量参数定义位宽 3. 使用宏定义位宽 4. 使用[:][-:]操作符定义位宽 1. 详细解释 : 操作符 -: 操作符 …

elementplus根据弹窗高度设置table高度

弹窗里要放一个table表格&#xff0c;表格高度跟随弹窗高度的变化而变化。 代码如下&#xff1a; <template><el-dialog ref"lookDialogRef" v-model"dialogLook.visible" :title"dialogLook.title" width"1000px" append-…

趣味编程:猜数字小游戏

1.猜数字小游戏概述 在我们的童年生活中&#xff0c;总是伴随着欢乐&#xff0c;是与小伙伴们一起玩游戏&#xff0c;其中最经典小游戏就是猜数字小游戏&#xff08;又称为数字炸弹&#xff09;。 猜数字小游戏的实现其实非常的简单&#xff0c;我们需要实现的猜数字一共有三…

电子科技大学考研,计算机与软件专业怎么选择?

电子科技大学在计算机与软件领域具备卓越实力&#xff0c;其毕业生就业前景及薪资水平均颇为可观。因此&#xff0c;学生应依据个人课程专长来选定专业。若各项课程均表现出色&#xff0c;推荐25届考生优先考虑软件专业&#xff0c;因其上岸难度相对较低。 接下来&#xff0c;C…

C++手动实现一个HashMap

1.HashMap原理 参考我的博客&#xff1a;https://blog.csdn.net/Revendell/article/details/110009858 开链法&#xff1a;STL的hashtable便是采用开链法解决冲突。这种做法是在每一个表格元素中维护一个list&#xff1a;散列函数为我们分配某一个list&#xff0c;然后我们在…