欢迎光临
我们一直在努力

c语言控制台【红色爱心】|笛卡尔心形保姆及讲解

完整代码

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>//用于system设置控制台颜色
int main(int argc,char*argv[])
{
float x,y,a;
system("color 0c");//0=黑色背景,c=红色文字,windows专属
//外层循环y控制行,从上往下扫描画布
for(y=1.5;y>–1.5;y-=0.1){
//内层循环x控制列,一行从左到右扫描每个坐标点
for(x=–1.5;x<1.5;x+=0.05){
a=x*x+y*y–1;
putchar(a*a*a–x*x*y*y*y<=0?'*':' ');
}
putchar('\\n');//一行绘制完成换行
}
// 爱心下方空几行,好看一点
printf("\\n");
printf("\\n");
printf("\\n");
return 0;
}

核心原理

1.数学公试:笛卡尔心形曲线
公式:(x^2 +y^2-1) ^3- x^2 y^3<=0
把每一个坐标(x,y)代入公式
计算结果<=0:这个坐标属于爱心区域打印*
计算结果>0:不在爱心区域打印空格

2.双层for循环=扫描画布
想象控制台是一张网格画布:
外层y:代表行,y从1.5逐步减到-1.5从上到下一行一行画
内层x:代表列,x从-1.5走到1.5,遍历当前行每一个横向坐标
0.1和0.05是步长:每次移动一点点,步长越小爱心边缘越平滑

3.三元运算符
条件?A:B

putchar(条件?'*':' ');

等价于下面的if-else,只是压缩成一行,代码更短更酷

if(条件成立){
putchar('*');
}else{
putchar(' ');
}

4.红色怎末来的
system(“color 0c”);
第一个数字0:背景颜色(0=黑色)
第二个字母c:文字颜色(c=红色)
注意:这个功能只支持windows系统

拓展小玩法

1.换颜色:system("color 0a);绿色字
system(color 0b);淡蓝色
2.调整y,x范围,放大或缩小爱心
3.在爱心下方printf输出一句话

赞(0)
未经允许不得转载:171主机测评 » c语言控制台【红色爱心】|笛卡尔心形保姆及讲解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址