用C++做一颗会跳动的爱心

先来看看效果:
在这里插入图片描述
在这里插入图片描述
程序描述:
程序先以较慢的速度画一个大爱心,之后跳动的心其实从视觉上看就是一大一小两个心相互切换,但是要调整一下大小爱心变化时的时间间隔。代码主要是通过设置两个函数,利用cls来清屏,重复打印大心和小心,并设置颜色为红色。

详细代码:

#include<iostream>
#include<cmath>
#include<Windows.h>
using namespace std;
//关键公式(x^2+y^2-1)^3-x^2*y^3=0,小于零的时候在心形内部,大于零的时候在外部 
void big_heart(){//大爱心的打印,一行一行打印爱心
	double x_1,y_1,m_1,n_1;
	for(y_1=1.5;y_1>-1.5;y_1-=0.1){ //心型的最大长度 
		for(x_1=-1.5;x_1<=1.5;x_1+=0.05){//心型的最大宽度 
		m_1=x_1*x_1+y_1*y_1-1;
		n_1=pow(m_1,3)-pow(x_1,2)*pow(y_1,3);
		n_1<0? cout<<'x': cout<<' ';
	}
	Sleep(100);
	cout<<endl;
}
}
void big_heart_2(){ //大爱心的打印,迅速的完成爱心的打印
	double x_1,y_1,m_1,n_1;
	for(y_1=1.5;y_1>-1.5;y_1-=0.1){ //心型的最大长度 
		for(x_1=-1.5;x_1<=1.5;x_1+=0.05){//心型的最大宽度 
		m_1=x_1*x_1+y_1*y_1-1;
		n_1=pow(m_1,3)-pow(x_1,2)*pow(y_1,3);
		n_1<0? cout<<'x': cout<<' ';
	}
	cout<<endl;
}
}
void small_heart(){ //小爱心的打印
	double x,y,m,n;
	for(y=3.0;y>-3.0;y-=0.2){ //心型的最大长度 
		for(x=-3.0;x<=3.0;x+=0.1){//心型的最大宽度 
		m=x*x+y*y-1;
		n=pow(m,3)-pow(x,2)*pow(y,3);
		n<0? cout<<'x': cout<<' ';
	}
	cout<<endl;
 }
}
//为了美观和舒适,隐藏打印时的光标
HANDLE han = GetStdHandle(-11);
void hide(){
	CONSOLE_CURSOR_INFO cursor;
	cursor.bVisible = 0;
	cursor.dwSize = 1;
	SetConsoleCursorInfo(han,&cursor);
}
int main(){  //主函数入口
	hide(); 
	system("color C"); //颜色调节
	big_heart();
	int a=1;
while(1){
	system("cls");
	if(a%2==0){
		small_heart();
		Sleep(400); //控制停顿时间
	}else{
		big_heart_2(); 
		Sleep(100); //控制停顿时间
		}
	a++;
}
	return 0;
}代码片
  • 35
    点赞
  • 265
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
### 回答1: 我用C语言写一颗粉色的跳动的心:#include <stdio.h>int main(void) { int i, j, k; for (i = 0; i<5; i++) { for (j = 0; j<5; j++) { if (i == 3 && j == 2) { printf(" ♥ "); } else { printf(" "); } } for (k = 0; k<5; k++) { if (i == 0 && k == 4) { printf(" ♥ "); } else if (i == 1 && k == 3) { printf(" ♥ "); } else if (i == 2 && k == 2) { printf(" ♥ "); } else if (i == 3 && k == 1) { printf(" ♥ "); } else if (i == 4 && k == 0) { printf(" ♥ "); } else { printf(" "); } } printf("\n"); } return 0; } ### 回答2: 要用C语言写一颗粉色的跳动的心,可以使用ASCII码来绘制心形图案,并结合循环和延迟函数实现跳动效果。 首先,在程序开头导入相应的头文件: ``` #include <stdio.h> #include <windows.h> ``` 然后,定义一个绘制心形的函数,通过输出特定的ASCII字符来显示心形图案: ``` void drawHeart() { printf(" **** ****\n"); printf(" ** ** ** **\n"); printf(" ** **** **\n"); printf(" ** *** **\n"); printf(" ** *** **\n"); printf(" ** *** **\n"); printf(" ** *** **\n"); printf(" ** *** \n"); printf(" ** ** \n"); printf(" ** **\n"); printf(" ** **\n"); printf(" *\n"); printf("\n"); } ``` 接下来,编写主函数,使用循环和延迟函数来实现心形的跳动效果,通过改变输出的位置,让心形图案在控制台中上下移动: ``` int main() { int i; int move = 1; // 控制心形向上或向下移动 while (1) { // 无限循环 system("cls"); // 清空控制台屏幕 // 控制心形上下移动的边界 if (i >= 10 || i <= 0) { move *= -1; // 碰到边界则改变移动的方向 } for (i = 0; i < 10; i++) { if (i == 5) { drawHeart(); // 绘制心形 } else { printf("\n"); // 在心形上下输出空行 } } Sleep(200); // 延迟200毫秒,控制移动速度 } return 0; } ``` 上述代码中使用了`system("cls")`来清空控制台屏幕,并通过`Sleep(200)`函数实现延迟效果,可以根据需要自行调整延迟时间。 这样,通过以上方案,我们就可以使用C语言编写一颗粉色的跳动的心。请注意,界面的颜色和跳动效果可能因操作系统和编译环境的不同而略有差异。 ### 回答3: 要用C语言写一颗粉色的跳动的心,可以使用ASCII字符画来表示。以下是一个简单的示例代码: ```c #include <stdio.h> #include <unistd.h> int main() { char heart[] = "\n" " ** ** \n" " ** ** ** ** \n" " ** ** ** \n" " ** ** \n" " ** ** \n" " ** ** \n" " ** ** \n" " ** \n\n"; char blank[] = "\n\n\n\n\n\n\n\n\n\n"; int i; for (i = 0; i < 5; i++) { printf("\033[2J"); // 清屏 printf("\033[H"); // 光标移动到屏幕左上角 if (i % 2 == 0) { printf("%s", blank); // 输出空白行,实现闪烁效果 } else { printf("%s", heart); // 输出心形图案 } usleep(500000); // 延迟500毫秒 } return 0; } ``` 代码中通过使用ASCII字符画来表示一个简单的心形图案。在第二个for循环中,通过不断切换输出空白行和心形图案,实现心形的跳动效果。最后采用usleep函数来实现延迟,产生跳动的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值