1.前言
新年第一天上班,先祝大家新年快乐,巧的是,今天刚好又是情人节,所以想了下用C实现画心形符号~
过年的时候,跟我表哥去接新娘,实地看了下,如果一个汉字内心没有点浪漫的细胞,很难勾搭上喜欢的妹子的,希望新的一年,各位单身coder们都能找到喜欢的另一半。
2.心形符号数学公式
Heart Curve -- from Wolfram MathWorld
这个网站里面的公式,我随便挑了一个
https://img-blog.csdnimg.cn/20190214113407685.png
公式如下
3.代码如下
代码里面有注释,不理解的可以自己运行调试
注意:easyx 下载链接如下
EasyX Library for C++
#include <stdio.h>
#include <easyx.h>
#include <math.h>
#define X 480
#define Y 480
int main()
{
int i, j;
/*初始化X,Y缓冲区*/
initgraph(X, Y);
/*设置背景颜色*/
setbkcolor(WHITE);
/*用于清除图形屏幕*/
cleardevice();
for (i = 0; i<X; i++)
{
for (j = 0; j<Y; j++)
{
/*i,j就是坐标轴,但是因为没有负数,所以需要做平移操作*/
double t1 = j / 100.0 - 2, t2 = -(i / 100.0 - 2.5);
/*判断是否在区间范围内*/
if(pow(pow(t1,2) +pow(t2,2) -1,3) -pow(t1,2)*pow(t2,3) < 0.0)
putpixel(j, i, RED);
}
}
getchar();
return 0;
}
4.运行结果
5. 换一个方式实现一下
代码如下
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
string s = "I love xiaoyun!";
for (float y = 1.1; y >= -1.1; y -= 0.06) {
int index = 0;
for (float x = -1.1; x <= 1.1; x += 0.025)
if (pow((x*x + y*y - 1.0), 3) - x*x*y*y*y <= 0.0)
cout << s[(index++) % s.size()];
else
cout << ' ';
cout << endl;
}
getchar();
return 0;
}
运行输出如下