用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. ELK系列~nxlog实现多位置文件的收集

    前几天我写了几篇关于ELK日志收集,存储和分析的文章: ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd ELK系列~Nxlog日志收集加转发(解决log4日志 ...

  2. Mybatis基本用法--上

    Mybatis基本用法--上 本文只是为自己查漏补缺.全面的请看官方文档,支持中英文 原理参考:http://blog.csdn.net/luanlouis/article/details/40422 ...

  3. bootstrap select多选

    1.页面效果 <div class="form-group"> <div class="col-md-2 control-label"> ...

  4. VNC 远程连接vmware下centOS7

    VNC ( Virtual Network Computing)是一个linux下提供远程桌面支持的服务,类似于windows下的远程桌面服务,本来我是准备用xmanager来远程连我虚拟机中的cen ...

  5. 数据结构--KMP算法总结

    数据结构—KMP KMP算法用于解决两个字符串匹配的问题,但更多的时候用到的是next数组的含义,用到next数组的时候,大多是题目跟前后缀有关的 . 首先介绍KMP算法:(假定next数组已经学会, ...

  6. AngularJS学习篇(十二)

    AngularJS SQL ASP.NET 中执行 SQL 获取数据 <!DOCTYPE html> <html> <head> <meta charset= ...

  7. Netty(二)——TCP粘包/拆包

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7814644.html 前面讲到:Netty(一)--Netty入门程序 主要内容: TCP粘包/拆包的基础知 ...

  8. Oracle Database 12c Release 2安装详解

    第1章 Oracle Database 12c Release 2安装详解 1.1 下载方法 oracle官网https://www.oracle.com 1)打开官方网站,找到下载连接 2)选择更多 ...

  9. [转载] 网络IO模型

    转载自http://blog.csdn.net/zhoudaxia/article/details/8974779 同步(synchronous) IO和异步(asynchronous) IO,阻塞( ...

  10. MySQL5.5编译安装以及Debug

    MySQL5.5以上版本安装是需要cmake 安装步骤: 设置编译参数cmake  -DCMAKE_INSTALL_PREFIX='/data1/guosong/mysql_debug'  -DDEF ...