孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

#include <graphics.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.1415926
#define R1 150
void Pentacle(double m)          /*自定义函数Pentacle用来画五角星*/
{
    int x1, y1, x2, y2;
    double n;
    setcolor(RED);
    for (n = m; n <= 2 *PI + m; n += 2 * PI / 5)
    {
        x1 = 320+R1 * cos(n);
        y1 = 240-R1 * sin(n);
        x2 = 320+R1 * 0.382 * cos(n + PI / 5);      /*0.382黄金分割点*/
        y2 = 240-R1 * 0.382 * sin(n + PI / 5);
        line(x1, y1, x2, y2);          /*将外圈确定的点与内圈确定的点相连接*/
        x1 = 320+R1 * cos(n + 2 * PI / 5);
        y1 = 240-R1 * sin(n + 2 * PI / 5);
        line(x2, y2, x1, y1);          /*将内圈确定的点与外圈确定的点相连接*/
    }
    setfillstyle(1, RED);          /*设置填充形式为红色实填充*/
    floodfill(320, 240, RED);         /*对五角星内进行填充*/
}

void light()             /*自定义函数light用来画发光部分*/
{
    int i, j, x, y, r2 = 160;
    setcolor(YELLOW);
    for (i = 0; i <= 16; i++)
    {
        for (j = 0; j <= 60; j++)
            ellipse(320, 240, j *6, j *6+1, r2 + 10 * i, r2 + 5 * i);
    }
}

void Delay(int Second)          /*自定义时间延迟函数Delay*/
{
    long T1, T2;
    T1 = time();
    while (1)
    {
        delay(50);
        T2 = time();
        if (T2 - T1 > Second)
            break;
    }
}

main()
{
    int gdriver = DETECT, gmode;
    double m = 0.0;
    initgraph(&gdriver, &gmode, "");       /*函数图形初始化*/
    while (!kbhit())
    {
        Pentacle(m);          /*调用函数Pentacle*/
        light();           /*调用函数light*/
        Delay(0.5);          /*调用函数Delay*/
        cleardevice();          /*清屏*/
        m += PI / 6;          /*函数参数每次增加30°实现五角在不同位置重画*/
    }
    getch();
    closegraph();         /*退出图形状态*/
}

posted on 2011-02-21 21:09  孤独的猫  阅读(474)  评论(0编辑  收藏  举报