21xrx.com
2024-12-22 20:42:39 Sunday
登录
文章检索 我的文章 写文章
C++编程教程:如何绘制爱心图案
2023-07-08 21:53:01 深夜i     --     --
C++编程教程 绘制 爱心图案

在C++编程中,有许多有趣的图案可以绘制,其中一个很受欢迎的图案是爱心。

下面是一份C++代码,可以用来绘制一个简单的爱心图案:


#include <iostream>

#include <cmath>

using namespace std;

int main()

{

  double x, y, size = 10;

  for (int i = 0; i <= 180; i++)

  {

    double t = i * 3.1415926535 / 180;

    x = size * (16 * pow(sin(t), 3));

    y = -size * (13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t));

    x += 50;

    y += 50;

    cout << x << " " << y << endl;

  }

  return 0;

}

运行该程序,会输出一系列的点坐标,如下所示:


50 23.7677

50.0798 23.7677

50.3193 23.7677

50.7194 23.7677

51.2789 23.7677

51.9976 23.7677

52.8753 23.7677

53.9118 23.7677

55.107 23.7677

56.4605 23.7677

57.9712 23.7677

59.6378 23.7677

61.4591 23.7677

63.4339 23.7677

65.561 23.7677

为了将这些点连接成一个实际的图案,需要使用一个图形库,如OpenGL或Qt。

这里我们使用一个名为WinBGIm的图形库,该库可以在Windows系统上使用。

下面是修改后的代码,它会在屏幕上绘制出一个爱心图案:


#include <iostream>

#include <cmath>

#include <graphics.h>

using namespace std;

int main()

{

  initwindow(800, 600); // 初始化画布

  double x, y, size = 100;

  setcolor(RED); // 设置线颜色为红色

  for (int i = 0; i <= 180; i++)

  {

    double t = i * 3.1415926535 / 180;

    x = size * (16 * pow(sin(t), 3));

    y = -size * (13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t));

    x += 400;

    y += 300;

    if (i == 0) // 如果是第一个点则不需要连线

    {

      putpixel(x, y, RED);

    }

    else

    {

      line(x, y, x + 1, y + 1); // 连接上一个点和当前点

    }

  }

  getch(); // 等待用户按下任意键

  return 0;

}

运行该程序,就可以看到一个红色的爱心图案出现在屏幕上,如下图所示:

![爱心图案](https://i.ibb.co/nrmRS4n/heart.png)

绘制爱心图案可能看起来很复杂,但实际上只需要一些简单的数学运算和一个图形库就可以实现。希望这篇文章可以帮助你了解如何在C++中绘制图案,甚至是更复杂的图案。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复