竹笋

首页 » 问答 » 环境 » 点燃我,温暖你理工男神李峋同款C语言
TUhjnbcbe - 2023/7/1 22:37:00
北京的最好皮炎医院 http://pf.39.net/bdfyy/bdfhl/210611/9052592.html

近期很火的《点燃我,温暖你》很火,里面的爱心代码也很惊艳,但是程序员看了觉得尬的扣脚,

网上也有他其他的语言爱心源码,但都不是C语言的,用语言描述一下,就是好多爱心,然后从内到外,从小到大的显示。今天就给大家分享:爱心代码,边看边用!

2.实现

C语言程序的编写就像同将一头大象放到冰箱里。

1、打开冰箱

2、放入大象

3、关上冰箱

首先就是计算坐标,更新坐标,绘制爱心三步。重复调用,就可以实现。里面的具体细节,可以查看代码。

3.运行效果

4.源码

///

//程序名称:《点燃我,温暖你》爱心程序

//编译环境:MictosoftVisualStudio,+EasyX_(beta)

//作
  者:爱编程的胡桃

//源码获取加q群:想学习更多项目、和同行交流学习都可以进来~

//

#includegraphics.h

#includeconio.h

#includetime.h

#includemath.h

#includesys/timeb.h

structMyLove

{

intNUMS;//编号

doublem;

doublen;

doublesize;

boolIs_show;

intx;

inty;

};

MyLovemylove[];

intCenterX=;

intCenterY=;

doubleSize=60;

voidinitdata();//初始化数据

voidupdata();//更新

voidmovedata();//平移

voidshowdata();//显示

int*GetRand(int*buf,intcount,intrange);//随机数的生成

voidheart(intx0,inty0,intsize,COLORREFC);

voidHpSleep(intms);

intmain()

{

initgraph(,);

initdata();

BeginBatchDraw();

while(true)

{

updata();

showdata();

HpSleep(30);//改为精确延时

FlushBatchDraw();

cleardevice();

}

EndBatchDraw();

_getch();

return0;

}

voidupdata()

{

int*buf=(int*)malloc(sizeof(int)*20);

buf=GetRand(buf,20,(int)(2*Size/0.01));

movedata();

for(inti=0;i20;i++)

{

mylove.m=buf*0.01;

mylove.n=(((sin(buf[(int)i]*0.01)*sqrt(fabs(cos(buf[(int)i]*0.01))))/(sin(buf[(int)i]*0.01)+1.))-2*sin(buf[(int)i]*0.01)+2);

mylove.size=Size;

mylove.NUMS=i/20;

mylove.Is_show=true;

mylove.x=(int)(-Size*mylove.n*cos(mylove.m)+CenterX);

mylove.y=(int)(-Size*mylove.n*sin(mylove.m)+CenterY-mylove.size);

}

for(inti=20;i;i++)

{

mylove.size=mylove.size+1;

if(mylove.size80)

{

mylove.size=80;

}

mylove.NUMS=i/20;

mylove.x=(int)(-mylove.size*mylove.n*cos(mylove.m)+CenterX);

mylove.y=(int)(-mylove.size*mylove.n*sin(mylove.m)+CenterY-mylove.size);

}

}

voidmovedata()

{

for(inti=;i19;i--)

{

mylove=mylove[i-20];

}

}

voidshowdata()

{

settextcolor(RED);

wchar_tc=0x59;//0x28是电话机在Wingdings字体中的对应编码

for(inti=0;i;i++)

{

settextstyle(mylove.NUMS+10,0,"Webdings");

setbkmode(TRANSPARENT);

outtextxy(mylove.x+20,mylove.y+20,c);

}

}

int*GetRand(int*buf,intcount,intrange)

{

structtimebtimeSeed;

ftime(timeSeed);

srand(timeSeed.time*+timeSeed.millitm);//millitime

for(inti=0;icount;i++)

{

intrandTmp=rand()%range;

for(intj=0;ji;j++)

{

if(buf[j]==randTmp)

{

break;//检查重复。

}

}

buf=randTmp;

}

returnbuf;

}

voidinitdata()

{

for(inti=0;i;i++)

{

mylove.NUMS=0;

mylove.m=0;

mylove.n=0;

mylove.size=0;

mylove.Is_show=false;

mylove.x=0;

mylove.y=0;

}

}

//精确延时函数(可以精确到1ms,精度±1ms)

//byyangw80yw80

qq.
1