浪漫情人节|C语言画心型

c/c++

浏览数:314

2019-3-30

1.前言

新年第一天上班,先祝大家新年快乐,巧的是,今天刚好又是情人节,所以想了下用C实现画心形符号~

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;
}
 

运行输出如下