c语言爱心函数3D,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);
}
}
效果图
跳动的爱心动画需要你运行程序后才可以看到。
c语言爱心函数3D,C语言控制台打印3D爱心图案相关推荐
- c语言pow函数用法_C语言基础的不能再基础的程序知识!“hello world”!
涉及到的知识点有:include有两种用法.{}大括号用法解释.C语言自定义名字的要求. c语言库函数printf的解释.编译错误有两种.调用system函数.c语言编译过程. 操作系统结构.指令集中 ...
- c语言scanf函数作用,C语言scanf函数应用问题解答
C语言scanf函数应用问题解答 C语言的输入是由系统提供的库函数完成的.scanf函数是C语言中最常用且功能最强的输入函数,但该函数如使用不慎,就会出现错误或得不到预想的结果.以下结果都是基于VC+ ...
- C语言 回调函数 callback - C语言零基础入门教程
目录 一.回调函数原理 二.回调函数简介 1.函数指针 2.指针函数 3.回调函数解释 三.回调函数实战 四.回调函数使用总结 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 ...
- linux中c语言kbhit函数用法,C语言判断用户是否输入-非阻塞函数kbhit
一.基础研究 要从地址读取数据,肯定是要定义一个指针变量p,用它来实现变换地址和取值的功能.另外程序是当两个条件中的某一个出现时才停止,所以应该用while~do循环语句循环输出n和d,并用while ...
- 51单片机c语言编程函数,单片机C语言教程:C51函数
其实一直出现在例子中的 main()也算是一个函数,只不过它比较特殊,编译时以它做为程序的开始段.有了函数C 语言就有了模块化的优点,一般功能较多的程序,会在编写程序时把每项单独的功能分成数个子程序模 ...
- c语言 is函数,关于C语言回调函数的详解~
原标题:关于C语言回调函数的详解~ 01 什么是回调函数? 回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义.我在百度上搜了一下, ...
- c语言memset函数用法,C语言memset函数使用方法详解
C语言memset函数使用方法详解 一.函数原形 void * memset(void*s, int ch,size_t n) 二.函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一 ...
- c语言atoi函数定义,C语言函数 atoi()
C语言函数 atoi() C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面我们来看看C语言函数 atoi() C语言函数 ...
- c语言memset函数作用,C语言memset函数使用方法详解
C语言memset函数使用方法详解 一.函数原形 void * memset(void*s,int ch,size_t n) 二.函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一般 ...
- c语言程序设计函数题,C语言程序设计函数练习题及参考答案
<C语言程序设计函数练习题及参考答案>由会员分享,可在线阅读,更多相关<C语言程序设计函数练习题及参考答案(60页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计练习题及参 ...
最新文章
- ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API
- 第四篇:Mysql数据库的用户授权及撤销
- 【Linux基础 01】Linux 下的文件系统
- 多线程编程1 - NSThread
- 如何下载SAP Cloud for Customer UI技术模型的XML源代码到本地
- 【Java基础】用LinkedList实现一个简单栈的功能
- 制作 小 linux 教程,【NanoPi NEO Plus2开发板试用体验】编译uboot和linux制作最小根文件系统制作刷机包---详细教程...
- LeetCode —— 257. 二叉树的所有路径(Python)
- HTTP与Tcp协议下双工通信的差异
- druid连接池以及数据源了解
- li的鼠标移入移出事件和点击事件分别实现为当前li添加样式,删除其他li样式...
- WPS 提示缺字体
- linux定时备份Mysql
- Flutter ContrainedBox
- html怎么打开成word,html怎么打开Word文档
- aspose-word主要标签结构图和标签详细作用
- win10系统电脑IP地址怎么查找,教程来啦,Windows10系统如何查找ip地址
- Unity 实现两个向量夹角为0~360度
- Quill富文本编辑器-图片上传-可编辑图片大小、排版
- java生成不重复8位数字_如何生成8位随机不重复的数字编号
热门文章
- 使用VBSCRIPT安装字体
- 联想启天m430安装黑苹果 10500 big sur 11.6
- Mac中vim的快捷操作
- 移动开发技术(Android)——实验1 Android开发环境搭建及简单程序实现
- 【校招VIP】测试脚本语言之系统状态(内存、网络)
- 计算机毕业论文中期论文质量,计算机 毕业论文(设计)中期报告(1页)-原创力文档...
- 中国互联网的5大生死逻辑
- solidworks装配体改为柔性_SolidWorks零件改名后与工程图关联教程
- ShareX(截图工具) 绿色版,功能异常强大
- [CTF]学习资源推荐