c++用graphics.h函数画钻石模型,

img


已经安装了easyx,希望可以帮改一下代码中的错误。
用如下图1所示,图中最大正n边形的外接圆半径为R,旋转该正n边形,每次旋转 角度,旋转后的的n边形顶点落在前一个正六边形的边上,共旋转N次,请上机编程绘制N+1个外接圆半径逐渐缩小且旋转的正n边形。要求:(1)n、R、N、 要求可以人为自由控制输入;(2)N+1个正六边形的中心(即外接圆的圆心)在显示屏幕中心。

下面是使用 graphics.h 画钻石模型的示例代码:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <math.h>

void draw_diamond(int x, int y, int l);

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");

    int x = getmaxx() / 2;
    int y = getmaxy() / 2;
    int l = 200;

    draw_diamond(x, y, l);

    getch();
    closegraph();
    return 0;
}

void draw_diamond(int x, int y, int l)
{
    int x1 = x;
    int y1 = y - l / 2;
    int x2 = x + l / 2;
    int y2 = y;
    int x3 = x;
    int y3 = y + l / 2;
    int x4 = x - l / 2;
    int y4 = y;

    line(x1, y1, x2, y2);
    line(x2, y2, x3, y3);
    line(x3, y3, x4, y4);
    line(x4, y4, x1, y1);
}

运行代码后,可在屏幕中央画出一个边长为 200 的钻石模型。如果需要画出其他大小的钻石模型,仅需修改 draw_diamond 函数的参数即可。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^