画格子

 1 /*写一个“格子涂色”的游戏,要求:屏幕上有 16x8 的格子,屏幕底部有类似画
 2 笔中的选色区(随便放上一些常用的颜色),鼠标点击选择区的颜色后,就作为
 3 当前颜色,然后再点屏幕上的格子,就可以用刚才的颜色填涂相应格子*/
 4 // 鼠标画三角形.cpp : Defines the entry point for the console application.
 5 
 6 
 7 #include <graphics.h>
 8 #include <stdio.h>
 9 #include "conio.h"
10 
11 void main()
12 {
13     int i;
14 
15     initgraph(800, 500);                                // 初始化绘图窗口
16 
17     setfillcolor(getbkcolor());                            //预设填充颜色为背景色
18 
19     float H, S, L;                                        // 定义 HSL 颜色模型的 3 个变量
20     H = 0;
21     S = 1;
22     L = 0.5f;
23         
24     for(i=0;i<=800;i=i+50)                                //划分16*8的格子填色区,格子大小为50*50,以及划分四个50*50的调色板
25         line(i,0,i,400);
26     for(i=0;i<=400;i=i+50)
27         line(0,i,800,i);
28     rectangle(350,450,400,500);
29     rectangle(400,450,450,500);
30     rectangle(300,450,350,500);
31     rectangle(450,450,500,500);
32 
33     for( i = 300; i !=500 ; ++i)                        // 绘制调色板颜色
34     {
35         L += 0.000000085f;
36         S -= 0.0013f;
37         setlinecolor(HSLtoRGB(H, S, L));
38         line(i, 450,i, 500);
39         if(i%50==0)
40             H=H+20;
41     }
42 
43     MOUSEMSG m;                                            //获取鼠标信息
44 
45     while(true)
46     {
47         m=GetMouseMsg();
48 
49         switch (m.uMsg)
50         {
51           case WM_LBUTTONDOWN:
52                                                         //判断鼠标单击的位置
53               if(m.x>300 && m.x<500 && m.y>450 && m.y<500)
54                   setfillcolor(getpixel(m.x,m.y));        //获取点的颜色
55               if(m.x>0 && m.x<800 && m.y>0 && m.y<400)
56                   floodfill(m.x,m.y,WHITE);                //填充该点所在的封闭区域
57               break;
58         }
59     }
60 
61     closegraph();                                        //关闭绘图窗口
62 }
View Code

 

posted on 2014-04-04 22:09  一颗向上的草莓  阅读(282)  评论(0编辑  收藏  举报