用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. JAVA基础知识总结:五

    一.初步认识数组 1.理解数组 数组是用来存储相兼容数据类型的定长的容器 特点: a.只能存放相兼容数据类型,不能存放多种数据类型 b.可以存放基本数据类型和引用数据类型 c.数组是定长的,一旦被初始 ...

  2. awake()和start()还有update(),fixedupdate()的差别

    1.首先看一下untiy官方对awake()和start()的定义 awake()和start()函数会在脚本加载后自动调用,awake()会先被调用,即使脚本未被调用.最好用来设置脚本之间的引用和初 ...

  3. 游标的小知识(借鉴and整理)

    一.游标(用来存储多条查询数据的一种数据结构(结果集),它有一个指针,用来从上往下移动,从而达到遍历每条记录的作用) 游标也可以理解为逐行返回SQL语句的结果集 如何编写一个游标? 1.声明游标 de ...

  4. wsimport 命令不是内部命令

    问题: 1. webservice在输入命令的时候wsimport的时候会出现如下错误: wsimport不是内部或者外部命令. 2. javac不是内部或者外部命令 3 java 就可以显示配置成功 ...

  5. 操作系统--进程管理1--单个CPU情况

    1.进程概念 进程:一个正在执行的程序:操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态.而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切.程序代码被加载进内存后就以进 ...

  6. StringDup(理论AC)

    Problem Statement for StringDup Problem Statement      Create a class called StringDup. Given a stri ...

  7. Air Raid

    Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. 一款超好用轻量级JS框架——Zepto.js(上)

       前  言 絮叨絮叨 之前我们介绍过JQuery怎么自定义一个插件,但没有详细介绍过JQuery,那么今天呢....我们还是不说JQuery,哈哈哈哈 但是今天我们介绍一款和JQuery超级像的一 ...

  9. HTML超连接的使用

    1,基本语法:<a href="" target="打开方式" name ="页面锚点名称">连接文字或者图片</a> ...

  10. 算法:javascript截取字符串

    题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...