动态爱心。
来源:互联网 发布:网络分流器厂家 编辑:程序博客网 时间:2024/04/29 00:04
#include<bits/stdc++.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(){ 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); float 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); float v = f(tx, 0.0f, tz); if (v <= 0.0f) { float y0 = h(tx, tz); float ny = 0.01f; float nx = h(tx + ny, tz) - y0; float nz = h(tx, tz + ny) - y0; float nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz); float 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); }}
0 0
- 动态爱心。
- 爱心
- 爱心
- 爱心
- 基于HTML5的js构造爱心,动态时间校准
- 爱心围墙
- 《爱心树》
- 爱心捐款
- 爱心编程
- 爱心图案
- 爱心代码
- 爱心代码
- 爱心桃
- 爱心传递
- 爱心java
- java爱心
- 打印爱心
- css爱心
- Linux查找文件内容(grep)
- 机器学习--BP神经网络的C++实现
- 电脑常用技巧之关闭开机自启软件
- 如何使用CSS来编辑文本
- 数据库语言分类
- 动态爱心。
- Java堆内存Heap与非堆内存Non-Heap简介和设置
- spring事物的提交与回滚
- OSG-Win32窗口显示osg
- SAX详解
- Power of Three
- 梯度下降法和拟牛顿法(三):牛顿法和拟牛顿法
- Map和HashMap
- 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值