版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44169596/article/details/107351457
程序员的专属浪漫💕
均为完整代码
表白专属代码
#七夕520#c语言#c++#表白玫瑰花#表白心形设计
普通版如何设计爱心
心形图案1
// #include <stdio.h>
int main()
{
for(double y = 1.5; y > -1.5; y -= 0.1)
{
for(double x = -1.5; x < 1.5; x += 0.05)
{
double a = x * x + y * y - 1;
putchar(a * a * a - x * x * y * y * y <= 0.0f? 'e' : ' ');
}
putchar('\n');
}
return 0;
}
输出效果: 爱你的♥ 就像无解的循环
升级版如何设计爱心
心形图案2
#include <stdio.h>
int main()
{
int i, j, k, l, m;
char c=3; //ASCII码里面 3 就是一个字符小爱心
for (i=1; i<=5; i++) printf("\n"); //开头空出5行
for (i=1; i<=3; i++) { //前3行中间有空隙分开来写
for (j=1; j<=32-2*i; j++) printf(" "); //左边的空格,每下一行左边的空格比上一行少2个 //8*n-2*i
for (k=1; k<=4*i+1; k++) printf("%c", c);//输出左半部分字符小爱心
for (l=1; l<=13-4*i; l++) printf(" "); //中间的空格,每下一行的空格比上一行少4个
for (m=1; m<=4*i+1; m++) printf("%c", c);//输出右半部分字符小爱心
printf("\n"); //每一行输出完毕换行
}
for (i=1; i<=3; i++) { //下3行中间没有空格
for (j=1; j<=24+1; j++) printf(" "); //左边的空格 //8*(n-1)+1
for (k=1; k<=29; k++) printf("%c", c);//输出字符小爱心
printf("\n"); //每一行输出完毕换行
}
for (i=7; i>=1; i--) { //下7行
for (j=1; j<=40-2*i; j++) printf(" "); //左边的空格,每下一行左边的空格比上一行少2个//8*(n+1)-2*i
for (k=1; k<=4*i-1; k++) printf("%c", c);//每下一行的字符小爱心比上一行少4个(这个循环是i--)
printf("\n"); //每一行输出完毕换行
}
for (i=1; i<=39; i++) printf(" "); //最后一行左边的空格
printf("%c\n", c); //最后一个字符小爱心
for (i=1; i<=5; i++) printf("\n"); //最后空出5行
return 0;
}
输出效果:小♥组成大❤ 每一颗都是为你跳动着的❤
升级版如何设计爱心
心形图案3
/#include <stdio.h>
#include <windows.h>
#define SHOW_SPEED 100
#define LOVE_ASCII 'V'
#define LOG_Delay(x) {printf(x); Sleep(SHOW_SPEED);}
int main()
{
int i,j,k;
char b[500]={"\n\
***** *****\n\
********* *********\n\
*************************\n\
***************************\n\
***************************\n\
***************************\n\
*************************\n\
***********************\n\
*******************\n\
***************\n\
***********\n\
*******\n\
***\n\
*\
"};
for(j = 0; j < 99; j++)
{
for(i=0;i<sizeof(b);i++)
{
if(b[i] == '*')
{
printf("%c", LOVE_ASCII);
}
else
{
printf("%c", b[i]);
if(b[i] == '\n')
{
Sleep(SHOW_SPEED);
printf(" ");
}
}
}
printf("\n\n");
LOG_Delay(" 我我我我我我 爱爱爱爱爱爱 你你你你你你\n");
for(i=0;i<3;i++)
LOG_Delay(" 我 爱 你 你\n");
LOG_Delay(" 我我我我我我 爱爱爱爱爱爱 你 你\n");
for(k=0;k<3;k++)
LOG_Delay(" 我 爱 你 你\n");
LOG_Delay(" 我我我我我我 爱爱爱爱爱爱 你你你你你你\n");
printf("\n");
}
return 0;
}
输出效果:持续滑动的520+❤ 爱你的♥永不止
情侣表白玫瑰花设计
送你一朵玫瑰
#include <graphics.h>
#include <conio.h>
#include <math.h>
// 定义全局变量
int rosesize = 500;
int h = -250;
// 定义结构体
struct DOT
{
double x;
double y;
double z;
double r; // 红色
double g; // 绿色
// b(蓝色) 通过 r 计算
};
// 计算点
bool calc(double a, double b, double c, DOT &d)
{
double j, n, o, w, z;
if (c > 60) // 花柄
{
d.x = sin(a * 7) * (13 + 5 / (0.2 + pow(b * 4, 4))) - sin(b) * 50;
d.y = b * rosesize + 50;
d.z = 625 + cos(a * 7) * (13 + 5 / (0.2 + pow(b * 4, 4))) + b * 400;
d.r = a * 1 - b / 2;
d.g = a;
return true;
}
double A = a * 2 - 1;
double B = b * 2 - 1;
if (A * A + B * B < 1)
{
if (c > 37) // 叶
{
j = (int(c) & 1);
n = j ? 6 : 4;
o = 0.5 / (a + 0.01) + cos(b * 125) * 3 - a * 300;
w = b * h;
d.x = o * cos(n) + w * sin(n) + j * 610 - 390;
d.y = o * sin(n) - w * cos(n) + 550 - j * 350;
d.z = 1180 + cos(B + A) * 99 - j * 300;
d.r = 0.4 - a * 0.1 + pow(1 - B * B, -h * 6) * 0.15 - a * b * 0.4 + cos(a + b) / 5 + pow(cos((o * (a + 1) + (B > 0 ? w : -w)) / 25), 30) * 0.1 * (1 - B * B);
d.g = o / 1000 + 0.7 - o * w * 0.000003;
return true;
}
if (c > 32) // 花萼
{
c = c * 1.16 - 0.15;
o = a * 45 - 20;
w = b * b * h;
z = o * sin(c) + w * cos(c) + 620;
d.x = o * cos(c) - w * sin(c);
d.y = 28 + cos(B * 0.5) * 99 - b * b * b * 60 - z / 2 - h;
d.z = z;
d.r = (b * b * 0.3 + pow((1 - (A * A)), 7) * 0.15 + 0.3) * b;
d.g = b * 0.7;
return true;
}
// 花
o = A * (2 - b) * (80 - c * 2);
w = 99 - cos(A) * 120 - cos(b) * (-h - c * 4.9) + cos(pow(1 - b, 7)) * 50 + c * 2;
z = o * sin(c) + w * cos(c) + 700;
d.x = o * cos(c) - w * sin(c);
d.y = B * 99 - cos(pow(b, 7)) * 50 - c / 3 - z / 1.35 + 450;
d.z = z;
d.r = (1 - b / 1.2) * 0.9 + a * 0.1;
d.g = pow((1 - b), 20) / 4 + 0.05;
return true;
}
return false;
}
// 主函数
void main()
{
// 定义变量
short *zBuffer;
int x, y, z, zBufferIndex;
DOT dot;
// 初始化
initgraph(640, 480); // 创建绘图窗口
setbkcolor(WHITE); // 设置背景色为白色
cleardevice(); // 清屏
// 初始化 z-buffer
zBuffer = new short[rosesize * rosesize];
memset(zBuffer, 0, sizeof(short) * rosesize * rosesize);
for (int j = 0; j < 2000 && !_kbhit(); j++) // 按任意键退出
{
for (int i = 0; i < 10000; i++) // 减少是否有按键的判断
if (calc(double(rand()) / RAND_MAX, double(rand()) / RAND_MAX, rand() % 46 / 0.74, dot))
{
z = int(dot.z + 0.5);
x = int(dot.x * rosesize / z - h + 0.5);
y = int(dot.y * rosesize / z - h + 0.5);
if (y >= rosesize) continue;
zBufferIndex = y * rosesize + x;
if (!zBuffer[zBufferIndex] || zBuffer[zBufferIndex] > z)
{
zBuffer[zBufferIndex] = z;
// 画点
int r = ~int((dot.r * h)); if (r < 0) r = 0; if (r > 255) r = 255;
int g = ~int((dot.g * h)); if (g < 0) g = 0; if (g > 255) g = 255;
int b = ~int((dot.r * dot.r * -80)); if (b < 0) b = 0; if (b > 255) b = 255;
putpixel(x + 50, y - 20, RGB(r, g, b));
}
}
Sleep(1);
}
// 退出
delete[]zBuffer;
_getch();
closegraph();
}
输出效果:动态玫瑰🌹的生成 永不停歇的❤
以上均是借鉴网络大神代码 画图工具graphics.h的下载安装下篇文章介绍!