c++绘制爱心[特殊字符] 安装 EasyX 库
案例一:字符绘制爱心
cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double x, y, f;
for (y = 1.5; y > -1.5; y -= 0.1) {
for (x = -1.5; x < 1.5; x += 0.05) {
f = (x * x + y * y - 1) * (x * x + y * y - 1) * (x * x + y * y - 1) - x * x * y * y * y;
if (f <= 0) {
cout << '*';
} else {
cout << ' ';
}
}
cout << endl;
}
return 0;
}
分析:
- 原理:利用数学公式
(x * x + y * y - 1) * (x * x + y * y - 1) * (x * x + y * y - 1) - x * x * y * y * y
来判断坐标点(x, y)
是否在爱心区域内。当该公式结果小于等于 0 时,说明点在爱心内,输出*
字符,否则输出空格 。 - 外层循环:
for (y = 1.5; y > -1.5; y -= 0.1)
控制爱心在垂直方向上的扫描,每次y
递减0.1
,相当于从爱心的顶部向底部逐行扫描。 - 内层循环:
for (x = -1.5; x < 1.5; x += 0.05)
控制在水平方向上的扫描,每次x
递增0.05
,从左到右扫描每一行。
案例二:跳动爱心(基于控制台简单实现)
cpp
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
void big_heart() {
double x_1, y_1, m_1, n_1;
for (y_1 = 1.5; y_1 > -1.5; y_1 -= 0.1) {
for (x_1 = -1.5; x_1 <= 1.5; x_1 += 0.05) {
m_1 = x_1 * x_1 + y_1 * y_1 - 1;
n_1 = pow(m_1, 3) - pow(x_1, 2) * pow(y_1, 3);
if (n_1 <= 0) {
cout << '*';
} else {
cout << ' ';
}
}
cout << endl;
}
}
void small_heart() {
double x, y, m, n;
for (y = 3.0; y > -3.0; y -= 0.2) {
for (x = -3.0; x <= 3.0; x += 0.1) {
m = x * x + y * y - 1;
n = pow(m, 3) - pow(x, 2) * pow(y, 3);
if (n <= 0) {
cout << '*';
} else {
cout << ' ';
}
}
cout << endl;
}
}
int main() {
while (true) {
system("cls");
big_heart();
Sleep(300);
system("cls");
small_heart();
Sleep(300);
}
return 0;
}
分析:
- 函数功能:
big_heart
函数用于绘制大爱心,small_heart
函数用于绘制小爱心,它们的原理和案例一类似,都是通过数学公式判断坐标点是否在爱心区域内并输出相应字符。 - 主函数逻辑:在
main
函数中,通过while (true)
实现一个无限循环。每次循环先使用system("cls")
清屏,然后绘制大爱心,等待 300 毫秒(Sleep(300)
),再次清屏后绘制小爱心,再等待 300 毫秒,如此反复,给人一种爱心跳动的视觉效果。 - 回车
案例三:使用图形库绘制彩色爱心(以 EasyX 为例,需提前安装 EasyX 库 )
cpp
#include <graphics.h>
#include <iostream>
#include <cmath>
using namespace std;
// 爱心参数方程计算x坐标
double heart_x(double t) {
return 16 * sin(t) * sin(t) * sin(t);
}
// 爱心参数方程计算y坐标
double heart_y(double t) {
return 13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t);
}
int main() {
initgraph(640, 480); // 初始化绘图窗口
setbkcolor(WHITE); // 设置背景颜色为白色
cleardevice(); // 用背景色清空窗口
setcolor(RED); // 设置绘图颜色为红色
double t;
for (t = 0; t < 2 * 3.1415926; t += 0.01) {
double x = heart_x(t) * 10 + 320; // 调整坐标使其在窗口合适位置
double y = -heart_y(t) * 10 + 240;
putpixel(int(x), int(y), RED); // 在指定坐标绘制像素点
}
getch(); // 等待按键
closegraph(); // 关闭绘图窗口
return 0;
}
分析:
- 爱心参数方程:使用数学上的爱心参数方程来计算爱心轮廓上点的坐标。
heart_x
函数和heart_y
函数分别根据参数t
计算爱心上点的x
和y
坐标。 - 绘图过程:在
main
函数中,先初始化绘图窗口,设置背景色并清空窗口。然后设置绘图颜色为红色,通过循环让参数t
从 0 变化到2 * π
,每次根据参数方程计算出坐标点,使用putpixel
函数在窗口对应的位置绘制红色像素点,最终组成一个爱心形状。最后等待按键并关闭绘图窗口。
在 Visual Studio 中安装 EasyX 库
步骤 1:下载 EasyX 库安装程序
访问 EasyX 官方网站(EasyX Graphics Library for C++ ),在官网首页找到 “下载” 按钮,点击下载适合你系统的 EasyX 库安装程序。
步骤 2:运行安装程序
下载完成后,找到下载的安装程序并运行。在安装界面中,安装程序会自动检测你系统中已安装的 Visual Studio 版本。
步骤 3:选择安装路径和版本
在安装程序中,选择你要安装 EasyX 库的 Visual Studio 版本(如果有多个版本)。你可以根据自己的需求选择安装路径,一般建议使用默认路径。
步骤 4:完成安装
点击 “安装” 按钮,等待安装过程完成。安装完成后,会弹出安装成功的提示框。
步骤 5:验证安装
打开 Visual Studio,创建一个新的 C++ 控制台项目,在代码中包含 EasyX 库的头文件并编写简单的绘图代码进行测试,示例代码如下:
cpp
#include <graphics.h>
#include <conio.h>
int main()
{
initgraph(640, 480); // 初始化图形窗口
circle(320, 240, 100); // 绘制一个圆形
_getch(); // 等待按键
closegraph(); // 关闭图形窗口
return 0;
}
编译并运行上述代码,如果能正常显示一个圆形窗口,则说明 EasyX 库安装成功。
在 Dev-C++ 中安装 EasyX 库
步骤 1:下载 EasyX 库文件
访问 EasyX 官方网站下载 EasyX 库文件,下载完成后解压。
步骤 2:复制头文件和库文件
- 复制头文件:找到解压后的文件中
include
文件夹里的graphics.h
文件,将其复制到 Dev-C++ 安装目录下的MinGW64\include
文件夹中(如果是 32 位系统则是MinGW32\include
)。 - 复制库文件:将解压后的文件中
lib
文件夹里的libeasyx.a
文件,复制到 Dev-C++ 安装目录下的MinGW64\lib
文件夹中(如果是 32 位系统则是MinGW32\lib
)。 - 确保下载的 EasyX 库版本与你的开发环境和系统位数(32 位或 64 位)相匹配。
- 在安装过程中,如果遇到权限问题,可能需要以管理员身份运行安装程序或复制文件。