C语言——文字闪烁效果

今天就写一个简单的文字闪烁效果,实现的效果比较简单,但也是值得学习的!
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
int main()
{
	initgraph(600,400);//初始画布
	setbkcolor(YELLOW);//背景颜色
	cleardevice();//清屏
	settextcolor(BLACK);//设置文字颜色
	settextstyle(50,0,"华文行楷");//设置文字大小和字体
	outtextxy(150,180,"文字闪烁效果!");//设置文字输出位置,文字内容
	char text[4] = { 0 };
	outtextxy(100,100,text);//整数输出
	//循环实现闪烁效果
	while (!_kbhit())//判断是否按键,等待输入按键为0,按键为1
	{
		settextcolor(RGB(255,255,255));
		outtextxy(150, 180, "文字闪烁效果!");
		outtextxy(100, 100, text);
		Sleep(500);//休眠500ms
		settextcolor(RGB(0, 0, 255));
		outtextxy(150, 180, "文字闪烁效果!");
		outtextxy(100, 100, text);
		Sleep(500);
		settextcolor(RGB(0, 255, 255));
		outtextxy(150, 180, "文字闪烁效果!");
		outtextxy(100, 100, text);
		Sleep(500);
		settextcolor(RGB(255, 0, 255));
		outtextxy(150, 180, "文字闪烁效果!");
		outtextxy(100, 100, text);
		Sleep(500);
	}

	getchar();//等待输入,防止闪屏
	closegraph();//关闭画
<think>嗯,用户需要一段C语言的爱心表白代码示例。这个问题很可爱,感觉用户可能正在准备一个浪漫的表白场景。用户提供的站内引用给了不少线索:引用1展示了一个经典的心形曲线控制台实现;引用2提到这是初学者的正反馈来源;引用3强调数学在图形学中的应用;引用4则拓展到字符画思路。看来用户的核心需求很明确——找一个能直接运行又足够有视觉冲击力的爱心代码。上次回复时已经准备了一个基础版爱心代码,这次需要更突出“表白”属性。可以在三个方向增强:视觉效果(颜色闪烁)、交互延时(增加心跳感)、文字定制(支持用户输入名字)。另外注意到引用4的玫瑰图案思路很有趣,虽然用户明确要C语言,但可以提一句“类似效果也可实现”作为知识扩展。考虑到用户可能是编程初学者,代码要保留详细注释:既解释数学原理(心形曲线方程),也说明WindowsAPI的特殊用法(如system("color")这种平台相关代码需要标注)。最后加个提示“可将结尾文字替换成告白语句”会更贴心——毕竟直接拿示例文字表白可能有点尴尬。安全方面要注意,这类代码通常无害,但自动更改控制台颜色的功能在部分系统可能导致可读性问题,需要提醒“如果显示异常可尝试手动调整终端设置”。</think> 下面是一个使用C语言编写的爱心表白代码示例,基于心形曲线方程实现炫酷的终端动画效果,并支持自定义表白文字: ```c #include <stdio.h> #include <windows.h> // Windows平台特有API #include <math.h> int main() { // 设置控制台文字颜色为红色 system("color 0C"); // 爱心生成参数 float scale = 0.05f; float speed = 0.1f; char name[] = "My Love"; // 自定义表白对象 // 动态生成爱心(带闪烁效果) for (int frame = 0; frame < 3; frame++) { for (float y = 1.5f; y > -1.5f; y -= speed) { for (float x = -1.5f; x < 1.5f; x += scale) { // 心形曲线方程:(x²+y²-1)³ - x²y³ = 0 float equation = pow(x*x + y*y - 1, 3) - pow(x,2)*pow(y,3); putchar(equation <= 0.0f ? '*' : ' '); } putchar('\n'); } Sleep(500); // 每帧暂停0.5秒 system("cls"); // 清屏实现闪烁 } // 最终显示爱心+文字 for (float y = 1.5f; y > -1.5f; y -= speed) { for (float x = -1.5f; x < 1.5f; x += scale) { float equation = pow(x*x + y*y - 1, 3) - pow(x,2)*pow(y,3); putchar(equation <= 0.0f ? '*' : ' '); } putchar('\n'); } // 自定义表白文字 printf("\n\n %s, you are the code to my heart!\n", name); printf(" Will you be my Valentine? <3\n\n"); system("pause"); return 0; } ``` ### 核心原理说明: 1. **数学基础**: 采用心形曲线方程 $$ (x^2 + y^2 - 1)^3 - x^2 y^3 = 0 $$ ,当方程值≤0时输出`*`,否则输出空格[^3] 2. **动态效果**: - 通过`system("cls")`清屏实现闪烁动画 - `Sleep(500)`控制帧率 - `system("color 0C")`设置红色文字增强视觉效果 3. **自定义功能**: 修改`char name[]`变量可替换表白对象,文字内容也可自由编辑 ### 使用提示: 1. 需在Windows系统编译运行(因使用windows.h) 2. 如显示异常,可调整`scale`和`speed`参数优化图形密度 3. 自定义文字时注意保留换行符`\n`保证排版 > 注:Linux/macOS用户需移除`windows.h`相关函数,改用ANSI转义序列实现颜色控制[^3]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值