题目:绘制一个最优美的图案(在TC中实现)。

程序分析:该程序绘制了一个最优美的图案,通过使用LineTo函数连接一系列描点,形成了一个有趣的图案。

实例

#include <stdio.h>
#include <graphics.h>
#include <math.h>

#define MAXPTS 15
#define PI 3.1415926

struct PTS {
    int x, y;
};

double AspectRatio = 0.85;

void LineToDemo(void)
{
    struct viewporttype vp;
    struct PTS points[MAXPTS];
    int i, j, h, w, xcenter, ycenter;
    int radius, angle, step;
    double rads;

    printf("MoveTo / LineTo Demonstration\n");

    getviewsettings(&vp);
    h = vp.bottom - vp.top;
    w = vp.right - vp.left;
    xcenter = w / 2; /* Determine the center of circle */
    ycenter = h / 2;
    radius = (h - 30) / (AspectRatio * 2);
    step = 360 / MAXPTS; /* Determine # of increments */
    angle = 0; /* Begin at zero degrees */

    for (i = 0; i < MAXPTS; ++i) { /* Determine circle intercepts */
        rads = (double)angle * PI / 180.0; /* Convert angle to radians */
        points[i].x = xcenter + (int)(cos(rads) * radius);
        points[i].y = ycenter - (int)(sin(rads) * radius * AspectRatio);
        angle += step; /* Move to next increment */
    }

    circle(xcenter, ycenter, radius); /* Draw bounding circle */

    for (i = 0; i < MAXPTS; ++i) { /* Draw the cords to the circle */
        for (j = i; j < MAXPTS; ++j) { /* For each remaining intersection */
            moveto(points[i].x, points[i].y); /* Move to beginning of cord */
            lineto(points[j].x, points[j].y); /* Draw the cord */
        }
    }
}

int main()
{
    int driver, mode;
    driver = CGA;
    mode = CGAC0;

    initgraph(&driver, &mode, "");

    setcolor(3);
    setbkcolor(GREEN);

    LineToDemo();

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

在上述代码中,我们使用BGI图形库创建了一个图形窗口,并使用LineTo函数绘制了一个最优美的图案。该图案由一系列连线组成,这些连线连接了一组描点,形成了一个有趣的图案。通过调整AspectRatio变量的值,可以改变图案的比例。在LineToDemo函数中,我们首先通过getviewsettings函数获取图形窗口的视口信息。然后,我们确定了图案的中心点、半径、角度等参数。接下来,我们使用循环和三角函数来计算描点的坐标,并使用circle函数绘制了一个边界圆。最后,我们使用嵌套循环和movetolineto函数绘制了连接描点的连线。最后,我们通过调用getch函数等待用户按下任意键,然后使用closegraph函数关闭图形系统。

请在支持BGI图形库的编译环境中运行此程序以查看效果。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题