视频在这里: https://www.douyin.com/video/7607360114852498722
嗨 ,程序员,打动她的心,就一个C++程序即可.
你的浪漫我已在除夕帮你打包!
从离散点到完整爱心,仿佛寓意着两个陌生的心灵相遇、靠近、融合的过程,你说是吗?
代码在这里:
cpp
#include "sprites.h" //包含C++精灵库
#include <iomanip>
Screen sc; //新建屏幕对象
Sprite r{"blank"}; //建立无造型角色叫r
Sprite p{"blank"}; //建立无造型角色叫p
Sprite q{"blank"}; //建立无造型角色叫q
std::string toStringWithPrecision(double value, int p=2) {
std::ostringstream oss;
oss << std::fixed << std::setprecision(p) << value;
return "k=" + oss.str();
}
int main(){ //主功能块
sc.bgcolor("black").tracer(0); //背景黑并关闭自动刷新
q.speed(0).pu().color(0).sety(280); //q画笔用于写 k=
r.speed(0).width(4).pu();
p.speed(0).width(4).pu();
float k =1.0;
while(k<=180){
float x=-2.0; sc.clear();
std::string res = toStringWithPrecision(k, 2);
q.cleartxts(1).write(res,35);
while(x<=2.0){
float y = pow(x,2.0/3.0) + 0.9*sin(k*x) * sqrt(3-x*x);
r.color(50*x);p.color(50*x); //设定两支画笔颜色的色相是50*x
r.go(100*x,100*y).dot(2); //r画笔到达坐标并打个点
p.go(-100*x,100*y).dot(2); //p画笔到达坐标并打个点
x = x + 0.002;
}
sc.update(); k = k+0.01;
}
sc.done(); //完成了
return 0; //返回0
}
这是一段用代码写就的数学情诗,一场由粒子与音符交织的视觉告白。当《梦中的婚礼》的旋律缓缓流淌,屏幕上的彩虹色粒子便开始了一场浪漫的舞蹈------它们从混沌中诞生,随着参数 k 的微小跃迁,逐渐汇聚、凝聚,最终勾勒出一颗完美跳动的爱心。这不是简单的图形绘制,而是程序员独有的浪漫语法:用 C++ 精灵库将冰冷的数学公式 y = x^(2/3) + 0.9*sin(k*x) * sqrt(3-x*x) 解译为流动的色彩与形状,让心形曲线在参数迭代中从模糊到清晰,仿佛爱情本身从朦胧心动的瞬间,走向坚定不移的誓言。
每一帧画面都是数学与艺术的共舞:50*x 的色相值让粒子随横坐标变换色彩,从左至右铺开一道彩虹,恰似爱情的多彩与绚烂;两支画笔 r 和 p 左右对称地描点,如同两颗心在镜像中寻找彼此的呼应。而那个从 1.0 递增到 180 的 k,正是时间的隐喻------每一次微小的增加,都让心形更饱满、色彩更浓烈,最终在某个临界点绽放成完整的爱意。更妙的是,背景的黑色像深邃的夜空,让彩虹色的粒子更加耀眼,仿佛在黑暗中点亮希望。
这不是普通的程序,而是一份精心雕琢的数字礼物。它证明了程序员的情书可以不用纸笔,而是用逻辑与算法;不用华丽的辞藻,而是用粒子轨迹与数学函数。当 sc.update() 一次次刷新屏幕,当 k 最终抵达终点,那颗定格的心形不仅呈现在屏幕上,更烙印在观者心中------原来,最极致的浪漫,是把你放进我的代码里,用我最熟悉的方式,为你写一首流动的诗。
这便是"C++创意编程"的魅力:它让技术有了温度,让代码有了心跳。而这份专属程序员的浪漫,足以打动她的心,因为每一行代码都写满了真诚,每一个粒子都承载着心意。
最终图像效果在这里:
