用C语言画一个心

时间:2023-03-08 20:38:12

用C语言图形库画一个心

--环家伟

这次我教大家用代码画一个心,这样你们就可以送给你们的女(男)朋友了。没找到对象的也可以用来表白啊。

1.首先,我去百度找了心形线的函数,如下:

用C语言画一个心

2.  联系高中的数学知识,我们知道:f(x)>0和f(x)<0的点分别在图形线两边

这样我们可以通过

用C语言画一个心

用C语言画一个心

这两个公式筛选出在心里面或者外面的点,然后对他们进行不同的操作。

3. 这样就简单了,只要遍历所有的点,然后判断点是在线上(=)还是在里面或者外面(<或者>),然后对他们进行不同的操作。

如果想画一个红心就可以这样写:

for (i = ; i<H; i++)          //H为画板高
{
for (j = ; j<W; j++)      //W为画板宽
{
//此处得到的(i,j)为屏幕每一个点的坐标 //对图形进行平移与放大操作
double t1 = j/150.0-, t2 =-(i/100.0-2.5);
//在这里判断每一个点是否满足在心图像里面的条件
if (pow(t1, ) + pow(t2 - pow(t1*t1, / 3.0), ) <= )
putpixel(j, i, RED);//如果这个点在xin里面,就画一个红点(putpixel函数为图形库easyx画点函数)
}
}

这样运行后就是这个样子:

用C语言画一个心

如果把代码改成这样:

for (i = ; i<H; i++)
{
for (j = ; j<W; j++)
{
double t1 = j/150.0-, t2 =-(i/100.0-2.5);
if (fabs(pow(t1, ) + pow(t2 - pow(t1*t1, / 3.0), )-)<0.1)
putpixel(j, i, RED);
}
}

结果就是这样:

用C语言画一个心

好了,大概的思路就是这个样子,大家还可以通过这种办法画各种函数的图形

如果没有图形库,请自己去easyx.cn下载安装,里面有详细教程。

附完整代码:

1.

#include <stdio.h>
#include<easyx.h>
#include<math.h>
#define W 640
#define H 480 int main()
{
int i, j;
initgraph(W, H);
setbkcolor(WHITE);
cleardevice();
for (i = ; i<H; i++)
{
for (j = ; j<W; j++)
{
double t1 = j/150.0-, t2 =-(i/100.0-2.5);
if (pow(t1, ) + pow(t2 - pow(t1*t1, / 3.0), ) <= )
putpixel(j, i, RED);
}
}
getchar();
return ;
}

2.

#include <stdio.h>
#include<easyx.h>
#include<math.h>
#define W 640
#define H 480 int main()
{
int i, j;
initgraph(W, H);
setbkcolor(WHITE);
cleardevice();
for (i = ; i<H; i++)
{
for (j = ; j<W; j++)
{
double t1 = j/150.0-, t2 =-(i/100.0-2.5);
if (fabs(pow(t1, ) + pow(t2 - pow(t1*t1, / 3.0), )-)<0.1)
putpixel(j, i, RED);
}
}
getchar();
return ;
}