easyx下绘制心形图案

easyx下绘制心形图案

在网上找了好久一直没找到,在easyx下画心形的代码,一搜全是在C下的printf图案,转都不好转为easyx的工程,实在不能忍,只好去找找心形曲线的函数,自己动手丰衣食足,修修改改弄了好久,终于达到了较为满意的效果,还是蛮像的,效果如下

这只是基础的,为后续心形图案的应用做点前言
完整代码如下:

////////////////////////////////////////////
// 程序名称:心形图案
// 编译环境:Visual Studio 2013,EasyX 2017-9-19
// 程序编写:鼠瓜
// 最后更新:2018-12-11
//

#include <graphics.h>
#include <conio.h>
#include <math.h>

//绘心形函数
//x0,y0,位置
//size:大小  
//COLORREF C:颜色
void heart(int x0, int y0, int size, COLORREF C)
{
	double  m, n, x, y; double i;
	for (i = 0; i <= 2*size; i = i + 0.01)		
	{
		//产生极坐标点
		m = i;
		n = -size * (((sin(i)*sqrt(fabs(cos(i)))) / (sin(i) + 1.4142)) - 2 * sin(i) + 2);
		//转换为笛卡尔坐标
		x = n*cos(m) + x0;
		y = n*sin(m) + y0;
		putpixel(x, y, C);
	}
}
void main()
{
	initgraph(640, 480);
	heart(300,150,80 ,RED);
	_getch();
	closegraph();
}