概述
用c语言实现跳动的心脏,给平时枯燥的编程学习生活加点乐趣,简单易学,可以仿照着敲出来也,可以拿来表白的喔。
该代码包含声音播放文件,需要如下操作:
1.需要下载wav格式的声音文件,(推荐在QQ音乐下载后,再利用QQ音乐的音频转码功能把音频转换成wav格式)
2.并与代码放在同一个文件夹里
3.把音频的文件名复制粘贴在(PlaySound函数里的引号内)
4.在编程软件的工具-->编译选项-->在连接器命令行加入如下命令窗口添加:
-static-libgcc -lwinmm
完成上述步骤后以下代码便可以运行
#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()
{
PlaySound("heart", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
//该函数引号内的便是插入的音频文件名,可更改。
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);
}
system("color 0c");
Sleep(0);
}
}
最后
以上就是野性过客为你收集整理的C语言--跳动的心的全部内容,希望文章能够帮你解决C语言--跳动的心所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复