C语言-绘图-心形函数

绘制心形函数步骤

文章目录


前言

很多学习C/C++语言的学生只知道写字符和数字的输入输出,不知道如何绘图,今天给大家带来的是用C语言绘制心形图形。


一、EasyX

1.

EasyX 是什么?

EasyX Graphics Library 是针对 Visual C++ 的免费绘图库,支持 VC6.0 ~ VC2022,简单易用,学习成本极低,应用领域广泛。目前已有许多大学将 EasyX 应用在教学当中。

2.EasyX 绘图库目前支持 VC6.0 ~ VC2019 所有版本。可以到 EasyX 官网 https://easyx.cn 直接下载:

二、使用步骤

1.引用函数库

代码如下(示例):

#include <graphics.h>
#include <conio.h>

graphics 图形库函数

conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。

这里我们需要使用

绘图的

arc

这个函数用于画椭圆弧。

fillpie

这个函数用于画有边框的填充扇形。

initgraph

这个函数用于初始化绘图窗口。

setlinestyle

这个函数用于设置当前设备画线样式。

_getch

用于忽略返回值。

closegraph

这个函数用于关闭绘图窗口。

2.写一个函数

图形函数
void xx(int x, int  y, int r)                        //x是图形的横坐标,y是纵坐标,r是半径
{
    double pi = 3.14159;                        //由于需要画椭圆需定义一个Π值
    arc(-2 * r + x, r + y, x, -r + y, 0, pi);        //前两个参数求椭圆的位置,有一个参数求椭圆的弧度
    arc(2 * r + x, r + y, x, -r + y, 0, pi);
    arc(-2 * r+x, y+3 * r, 4 * r+x, -3 * r+y, pi, pi * 250 / 180);
    arc(-4 * r+x, 3 * r+y, 2 * r+x, -3 * r+y, pi * 290 / 180, pi * 2);
}

试一试效果

绘图先初始化窗口

 initgraph(600,400);

再设定线条的属性

 setlinestyle(PS_SOLID, 1);

同时为了看到图像,使用忽略返回值函数_getch();

然后关闭窗口 closegraph();

#include <graphics.h>
#include <conio.h>
void xx(int x, int  y, int r)
{
    double pi = 3.14159;
    arc(-2 * r + x, r + y, x, -r + y, 0, pi);
    arc(2 * r + x, r + y, x, -r + y, 0, pi);
    arc(-2 * r+x, y+3 * r, 4 * r+x, -3 * r+y, pi, pi * 250 / 180);
    arc(-4 * r+x, 3 * r+y, 2 * r+x, -3 * r+y, pi * 290 / 180, pi * 2);
}
int main()
{
    initgraph(600,400);
    setlinestyle(PS_SOLID, 1);
    xx(100,200,50);
    _getch();
    closegraph();
    return 0;
}


 同样我们可以得出图像函数

由于是实心的所以使用扇形函数fillpie

void tx(int x, int y, int r)
{
    double pi = 3.14159;
    fillpie(-2 * r + x, r + y, x, -r + y, 0, pi);
    fillpie(2 * r + x, r + y, x, -r + y, 0, pi);
    fillpie(-2 * r + x, y + 3 * r, 4 * r + x, -3 * r + y, pi, pi * 250 / 180);
    fillpie(-4 * r + x, 3 * r + y, 2 * r + x, -3 * r + y, pi * 290 / 180, pi * 2);
}

现在放到一起看效果

 所以。我们可以得出函数是正确的

最终得到函数及其展示

#include <graphics.h>
#include <conio.h>
void xx(int x, int  y, int r)
{
	double pi = 3.14159;
	arc(-2 * r + x, r + y, x, -r + y, 0, pi);
	arc(2 * r + x, r + y, x, -r + y, 0, pi);
	arc(-2 * r+x, y+3 * r, 4 * r+x, -3 * r+y, pi, pi * 250 / 180);
	arc(-4 * r+x, 3 * r+y, 2 * r+x, -3 * r+y, pi * 290 / 180, pi * 2);
}
void tx(int x, int y, int r)
{
	double pi = 3.14159;
	fillpie(-2 * r + x, r + y, x, -r + y, 0, pi);
	fillpie(2 * r + x, r + y, x, -r + y, 0, pi);
	fillpie(-2 * r + x, y + 3 * r, 4 * r + x, -3 * r + y, pi, pi * 250 / 180);
	fillpie(-4 * r + x, 3 * r + y, 2 * r + x, -3 * r + y, pi * 290 / 180, pi * 2);
}
int main()
{
	initgraph(600,400);
	setlinestyle(PS_SOLID, 1);
	xx(100,200,50);
	tx(400, 200, 50);
	_getch();
	closegraph();
	return 0;
}

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值