课外天地 李树青学习天地C语言程序设计 → 课上练习代码——EGE高级绘图操作


  共有13498人关注过本帖树形打印复制链接

主题:课上练习代码——EGE高级绘图操作

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1938 积分:26572 威望:0 精华:34 注册:2003/12/30 16:34:32
课上练习代码——EGE高级绘图操作  发帖心情 Post By:2015/12/12 9:07:50 [只看该作者]

 

绘制太极双鱼图
#include "graphics.h"

main()
{
    int driver=VGA,model=VGAHI;
    int i=0,j=0;
    int x,y;
    initgraph(&driver,&model,"");
    ege::initgraph(600,600);

    setbkcolor(WHITE);
    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
    sector(300,300,90,270,200,200);
    setcolor(YELLOW);
    setfillstyle(SOLID_FILL,YELLOW);
    sector(300,300,270,450,200,200);
    sector(300,200,90,270,100,100);
    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
    sector(300,400,270,450,100,100);
    setcolor(YELLOW);
    setfillstyle(SOLID_FILL,YELLOW);
    sector(300,400,0,360,20,20);
    setcolor(RED);
    setfillstyle(SOLID_FILL,RED);
    sector(300,200,0,360,20,20);
    getch();

}


更为灵活的版本
#include "graphics.h"
#define WIDTH 1600
#define HEIGHT 1200

main()
{
    int driver=VGA,model=VGAHI;
    int i=0,j=0;
    int x,y;
    initgraph(&driver,&model,"");
    ege::initgraph(WIDTH,HEIGHT);

    setbkcolor(WHITE);
    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
    sector(WIDTH/2,HEIGHT/2,90,270,WIDTH/3,HEIGHT/3);
    setcolor(YELLOW);
    setfillstyle(SOLID_FILL,YELLOW);
    sector(WIDTH/2,HEIGHT/2,270,450,WIDTH/3,HEIGHT/3);
    sector(WIDTH/2,HEIGHT/3,90,270,WIDTH/6,HEIGHT/6);
    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
    sector(WIDTH/2,HEIGHT*2/3,270,450,WIDTH/6,HEIGHT/6);
    setcolor(YELLOW);
    setfillstyle(SOLID_FILL,YELLOW);
    sector(WIDTH/2,HEIGHT*2/3,0,360,WIDTH/30,HEIGHT/30);
    setcolor(RED);
    setfillstyle(SOLID_FILL,RED);
    sector(WIDTH/2,HEIGHT/3,0,360,WIDTH/30,HEIGHT/30);
    getch();

}


渐变色:
#include "graphics.h"
#define WIDTH 1600
#define HEIGHT 1200

main()
{
    int driver=VGA,model=VGAHI;
    initgraph(&driver,&model,"");
    ege::initgraph(WIDTH,HEIGHT);

    setbkcolor(WHITE);

    int i=0;
    for(;i<256;i++)
    {
        setcolor(RGB(i,0,i));
        setlinestyle(SOLID_FILL,0,4);
        line(0,i*4,WIDTH,i*4);
    }
   
    getch();

}


#include "math.h"
#include "graphics.h"
#define WIDTH 1600
#define HEIGHT 1200

main()
{
    int driver=VGA,model=VGAHI;
    initgraph(&driver,&model,"");
    ege::initgraph(WIDTH,HEIGHT);
    setbkcolor(WHITE);
    setlinestyle(SOLID_FILL,0,4);
    int c;
    double a;
    int x, y, r=600;
    for(a=0; a<PI*2; a+=0.0001)
    {
        x=(int)(r*cos(a) + WIDTH/2 + 0.5);
        y=(int)(r*sin(a) + HEIGHT/2 + 0.5);
        c=(int)(a*255/(2*PI) + 0.5);
        setcolor(RGB(c,0,0));
        line(WIDTH/2, HEIGHT/2, x, y);
    }
    getch();

}

鼠标绘图操作
直线矩形绘图
#include "graphics.h"
#include "stdio.h"
#include "stdlib.h"

main()
{
    int driver=VGA,model=VGAHI;
    initgraph(&driver,&model,"");
    ege::initgraph(800,800);
    setbkcolor(YELLOW);
    setcolor(BLACK);
    setlinestyle(SOLID_LINE,0,3);
    int x1,y1,x2,y2;
    for ( ; is_run(); delay_fps(120))
    {
        while (mousemsg())
        {
            mouse_msg m = getmouse();
            if (m.msg == mouse_msg_down)
            {
                x1=m.x;
                y1=m.y;
            }
            if (m.msg == mouse_msg_up)
            {
                x2=m.x;
                y2=m.y;
                //line(x1,y1,x2,y2);
                rectangle(x1,y1,x2,y2);
            }
           
        }
    }
}

 

自由绘图
#include "graphics.h"
#include "stdio.h"
#include "stdlib.h"

main()
{
    int driver=VGA,model=VGAHI;
    initgraph(&driver,&model,"");
    ege::initgraph(800,800);
    setbkcolor(YELLOW);
    setcolor(BLACK);
    setlinestyle(SOLID_LINE,0,3);
    int x1,y1,x2,y2,start=0;
    for ( ; is_run(); delay_fps(120))
    {
        while (mousemsg())
        {
            mouse_msg m = getmouse();
            if (m.msg == mouse_msg_down)
            {
                x1=m.x;
                y1=m.y;
                start=1;
            }
            if (m.msg == mouse_msg_move && start==1)
            {
                x2=m.x;
                y2=m.y;
                line(x1,y1,x2,y2);
                x1=m.x;
                y1=m.y;
            }
            if (m.msg == mouse_msg_up)
            {
                start=0;
            }

        }
    }
}

 


 


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2015-12-12 09:09:27编辑过]

 回到顶部