用C语言画一个心
用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语言画一个心的更多相关文章
- CSS 画一个心
效果图: 实现原理: 可以把这个心分为两部分,两个长方形,分别设置 border-radius,transform: rotate() . 设置属性之后 再次添加一个,设置相反的 rotate 设置其 ...
- 画一个心送给心爱的小姐姐,Python绘图库Turtle
Python绘图库Turtle Turtle介绍 Turtle是Python内嵌的绘制线.圆以及其他形状(包括文本)的图形模块. 一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对 ...
- 【Python】画一个心形
#!/usr/bin/env python # -*- coding:utf-8 -*- import turtle import time # 画心形圆弧 def hart_arc(): for i ...
- 用C语言画一个“爱心”
/*每个main函数代表一种形状*/#include<iostream> using namespace std; #include<stdio.h> #include< ...
- 用Qt 画一个心形
MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTi ...
- python画出心形图
程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...
- (转)如何学好C语言,一个成功人士的心得!
zidier111发表于 2013-1-26 08:59:05 今 天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所 ...
- 怎样学好C语言,一个成功人士的心得!
今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了全部的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的 ...
- 用Java语言编写一个简易画板
讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...
随机推荐
- JAVA基础知识总结:五
一.初步认识数组 1.理解数组 数组是用来存储相兼容数据类型的定长的容器 特点: a.只能存放相兼容数据类型,不能存放多种数据类型 b.可以存放基本数据类型和引用数据类型 c.数组是定长的,一旦被初始 ...
- awake()和start()还有update(),fixedupdate()的差别
1.首先看一下untiy官方对awake()和start()的定义 awake()和start()函数会在脚本加载后自动调用,awake()会先被调用,即使脚本未被调用.最好用来设置脚本之间的引用和初 ...
- 游标的小知识(借鉴and整理)
一.游标(用来存储多条查询数据的一种数据结构(结果集),它有一个指针,用来从上往下移动,从而达到遍历每条记录的作用) 游标也可以理解为逐行返回SQL语句的结果集 如何编写一个游标? 1.声明游标 de ...
- wsimport 命令不是内部命令
问题: 1. webservice在输入命令的时候wsimport的时候会出现如下错误: wsimport不是内部或者外部命令. 2. javac不是内部或者外部命令 3 java 就可以显示配置成功 ...
- 操作系统--进程管理1--单个CPU情况
1.进程概念 进程:一个正在执行的程序:操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态.而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切.程序代码被加载进内存后就以进 ...
- StringDup(理论AC)
Problem Statement for StringDup Problem Statement Create a class called StringDup. Given a stri ...
- Air Raid
Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 一款超好用轻量级JS框架——Zepto.js(上)
前 言 絮叨絮叨 之前我们介绍过JQuery怎么自定义一个插件,但没有详细介绍过JQuery,那么今天呢....我们还是不说JQuery,哈哈哈哈 但是今天我们介绍一款和JQuery超级像的一 ...
- HTML超连接的使用
1,基本语法:<a href="" target="打开方式" name ="页面锚点名称">连接文字或者图片</a> ...
- 算法:javascript截取字符串
题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...