博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言控制台打印3D爱心图案
阅读量:5995 次
发布时间:2019-06-20

本文共 2216 字,大约阅读时间需要 7 分钟。

非常多都认为自己的编程工作十分的鼓噪乏味。一整天面对的都是一些写不完的代码和改不完的Bug。今天我们要给大家分享一些有趣的C语言代码,也许能够为你无聊的工作带来一丝乐趣。

这些代码能够完毕几个不同的爱心图案。当中有一个样例甚至能够在黑色背景的控制台上打印出跳动的3D爱心动画,效果相当震撼。

我用的是开发环境,假设你也使用这个开发环境。能够直接拷贝以下的代码进行效果演示。

普通的爱心图案

C语言代码:

#include "stdafx.h"#include 
#include
int main(){ float y, x, a; for (y = 1.5f;y > -1.5f;y -= 0.1f) { for (x = -1.5f;x < 1.5f;x += 0.05f) { a = x*x + y*y - 1; putchar(a*a*a - x*x*y*y*y <= 0.0f ?

'*' : ' '); } putchar('\n'); } return 0; }

效果图:

带花纹的爱心图案

C语言代码:

#include "stdafx.h"#include 
#include
int main(){ float y, x, z,f; for (y = 1.5f;y > -1.5f;y -= 0.1f) { for (x = -1.5f;x < 1.5f;x += 0.05f) { z = x*x + y*y - 1; f = z*z*z - x*x*y*y*y; putchar(f <= 0.0f ? ".:-=+*#%@"[(int)(f*-8.0f)] : ' '); } putchar('\n'); } getchar(); return 0;}

效果图:

跳动的3D爱心图案

C语言代码:

#include "stdafx.h"#include 
#include
#include
#include
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); }}

效果图

跳动的爱心动画须要你执行程序后才干够看到。

 

 

 

 

本文借鉴

转载地址:http://hvqlx.baihongyu.com/

你可能感兴趣的文章
Core源码(一) ConcurrentDictionary
查看>>
Visual Studio Code管理MySQL
查看>>
Mysql锁机制--写锁
查看>>
VO、DTO、DO、PO
查看>>
Java知多少(51)finally
查看>>
【翻译】理解内存
查看>>
HNUSTOJ-1258 Time
查看>>
bzoj1061 1283
查看>>
oscached
查看>>
L119
查看>>
两列自适应布局的4种思路
查看>>
UITextField 限制输入金额(项目中遇到判断输入金额)
查看>>
openresty
查看>>
抽象类特点
查看>>
50个必备的实用jQuery代码段
查看>>
如何导出SQL Azure脚本?
查看>>
附加导航 affix,side--toolbar(可结合博客园使用~)
查看>>
C#之读取web上的xml
查看>>
beanUtils操作bean的属性
查看>>
备忘-Android ViewPager 与Gallery滑动冲突解决方法
查看>>