IE盒子

搜索
查看: 131|回复: 0

用C语言图形库画一个心

[复制链接]

3

主题

9

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2023-1-17 08:36:27 | 显示全部楼层 |阅读模式
这次我教大家用代码画一个心,这样你们就可以送给你们的女(男)朋友了。没找到对象的也可以用来表白啊。
1.首先,我去百度找了心形线的函数,如下:



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





这两个公式筛选出在心里面或者外面的点,然后对他们进行不同的操作。
3. 这样就简单了,只要遍历所有的点,然后判断点是在线上(=)还是在里面或者外面(<或者>),然后对他们进行不同的操作。
如果想画一个红心就可以这样写:
for (i = 0; i<H; i++)          //H为画板高
    {
        for (j = 0; j<W; j++)      //W为画板宽
        {
            //此处得到的(i,j)为屏幕每一个点的坐标
                        
            //对图形进行平移与放大操作
            double t1 = j/150.0-2, t2 =-(i/100.0-2.5);
            //在这里判断每一个点是否满足在心图像里面的条件
            if (pow(t1, 2) + pow(t2 - pow(t1*t1, 1 / 3.0), 2) <= 1)
                putpixel(j, i, RED);//如果这个点在xin里面,就画一个红点(putpixel函数为图形库easyx画点函数)
        }
    }这样运行后就是这个样子:


如果把代码改成这样:
for (i = 0; i<H; i++)
    {
        for (j = 0; j<W; j++)
        {
            double t1 = j/150.0-2, t2 =-(i/100.0-2.5);
            if (fabs(pow(t1, 2) + pow(t2 - pow(t1*t1, 1 / 3.0), 2)-1)<0.1)
                putpixel(j, i, RED);
        }
    }结果就是这样:


好了,大概的思路就是这个样子,大家还可以通过这种办法画各种函数的图形
如果没有图形库,请自己去http://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 = 0; i<H; i++)
    {
        for (j = 0; j<W; j++)
        {
            double t1 = j/150.0-2, t2 =-(i/100.0-2.5);
            if (pow(t1, 2) + pow(t2 - pow(t1*t1, 1 / 3.0), 2) <= 1)
                putpixel(j, i, RED);
        }
    }
    getchar();
    return 0;
}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 = 0; i<H; i++)
    {
        for (j = 0; j<W; j++)
        {
            double t1 = j/150.0-2, t2 =-(i/100.0-2.5);
            if (fabs(pow(t1, 2) + pow(t2 - pow(t1*t1, 1 / 3.0), 2)-1)<0.1)
                putpixel(j, i, RED);
        }
    }
    getchar();
    return 0;
}【END
<hr/>自学编程的小伙伴们不容易,在学习编程的路上会遇到很多瓶颈,甚至会感到迷茫,为此我给大家整理了一些资源福利,都放在下方啦,还可以和群里的小伙伴们一起来学习交流嗷~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表