用C语言图形库画一个心

--环家伟

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

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

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

这样我们可以通过

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

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画点函数)
}
}

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

如果把代码改成这样:

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

结果就是这样:

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

如果没有图形库,请自己去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 ;
}

用C语言画一个心的更多相关文章

  1. CSS 画一个心

    效果图: 实现原理: 可以把这个心分为两部分,两个长方形,分别设置 border-radius,transform: rotate() . 设置属性之后 再次添加一个,设置相反的 rotate 设置其 ...

  2. 画一个心送给心爱的小姐姐,Python绘图库Turtle

    Python绘图库Turtle Turtle介绍 Turtle是Python内嵌的绘制线.圆以及其他形状(包括文本)的图形模块. 一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对 ...

  3. 【Python】画一个心形

    #!/usr/bin/env python # -*- coding:utf-8 -*- import turtle import time # 画心形圆弧 def hart_arc(): for i ...

  4. 用C语言画一个“爱心”

    /*每个main函数代表一种形状*/#include<iostream> using namespace std; #include<stdio.h> #include< ...

  5. 用Qt 画一个心形

    MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTi ...

  6. python画出心形图

    程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...

  7. (转)如何学好C语言,一个成功人士的心得!

    zidier111发表于 2013-1-26 08:59:05   今 天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所 ...

  8. 怎样学好C语言,一个成功人士的心得!

    今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了全部的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的 ...

  9. 用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

随机推荐

  1. TsBatis 预览

    前言 在发布了 mybatis-dynamic-query之后感觉基本功能稳定了,而且现在在工作项目开发效率大大提高,而且非常易于维护. 最近准备带几个小朋友以前用typescript 打通前后端,当 ...

  2. PHP常用配置

    Php配置文件:php.ini(使用‘;’表示注释) Php的配置项可以在配置文件中配置,也可以在脚本中使用ini_set()函数临时配置. 语言相关配置: 1. engine:设置PHP引擎是否可用 ...

  3. C Run-Time Error R6034问题的解决

    1.问题描述 这两天一直在用vs2008编写一个小项目,需要在c++代码中通过命令行的方式调用cl.exe和link.exe,也就是给编译器cl和链接器link传递参数,然后编译链接生成可执行文件ex ...

  4. Crazy Calendar (阶梯博弈变形)

    2011 was a crazy year. Many people all over the world proposed on 11-11-11, married on 11-11-11, som ...

  5. solr安装血泪史

    Windows10专业版,solr6.5.1,tomcat8.5.14,jdk1.8 转自http://www.jianshu.com/p/dd7a59b3f0b5 科普篇 来自百度百科:Solr简介 ...

  6. Shell入门知识

    Shell 简介 Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 常常作为批处理命令来 ...

  7. 远程连接SQL Server 2014遇到的问题和解决

    在本机可以通过IP地址的数据库引擎登录数据库,可用同网段的其它电脑远程登录一直不成功.查看网上资料,认为是主机防火墙的问题. 在微软网站上查找相关的文档找到了答案.http://msdn.micros ...

  8. Linux修改时区的正确方法

    CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ll /etc/localti ...

  9. jquery的img的动态title换行

    因业务需要,需要在图片悬浮的时候显示动态加载的title,如果图片的title为固定的可以使用以下方式换行: <img src="1.jpg" title="第一行 ...

  10. selenium元素定位

    在网页自动化测试中,我们要让程序自动模拟我们的点击.输入.悬浮.拖动等操作,完成我们的测试用例组. 输入.点击.打开这样的动词,已经包含在了selenium的方法中,可以直接调用(当然你也可以自己写) ...