ITPub博客

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

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

作者:dapan 时间:2019-02-14 11:57:32 0 删除 编辑

1.前言

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


2.心形符号数学公式

Heart Curve -- from Wolfram MathWorld

这个网站里面的公式,我随便挑了一个

![](img-blog.csdnimg.cn/201)

公式如下

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

运行输出如下

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-08-07

  • 博文量
    4504
  • 访问量
    87401