146.矩形区域的颜色填充

简介: 146.矩形区域的颜色填充
#include <stdio.h>
#include <graphics.h>
void main()
{int gd=VGA,gm=VGALO;
 /*registerbgidriver(EGAVGA_driver);*/
 initgraph(&gd,&gm,"e:\\tc\\bgi"); /*设置图形模式*/
 setcolor(YELLOW);
 rectangle(105,105,175,135); /*画正方形*/
 full(120,120,YELLOW); /*调填充函数*/
 getch(); /*等待*/
 closegraph(); /*关闭图形模式*/
}
#define DELAY_TIME 5/*填充点后延长的时间,用来观看填充的过程,单位:毫秒*/
int full(int x,int y,int color1)/*递归的填充函数*/
{int color2,x1,y1;
 x1=x; y1=y;
 if(kbhit())return;
 color2=getpixel(x1,y1); /*读(x,y)点颜色值*/
 if(color2!=color1) /*判断是否与填充色相等*/
 {putpixel(x1,y1,color1); /*画点(x1,y1) */
  delay(DELAY_TIME);
  getch();
  x1++;
  full(x1,y1,color1); /*递归调用*/
 }
 x1=x; y1=y;
 color2=getpixel(x1-1,y1); /*读(x1-1,y1)点颜色值*/
 if(color2!=color1) /*判断是否与填充色相等*/
 {putpixel(x1,y1,color1); /*画点(x1,y1) */
  delay(DELAY_TIME);
  x1--;
  full(x1,y1,color1); /*递归调用*/
 }
 x1=x; y1=y;
 color2=getpixel(x1,y1+1); /*读(x1,y1+1)点颜色值*/
 if(color2!=color1) /*判断是否与填充色相等*/
 {putpixel(x1,y1,color1); /*画点(x1,y1) */
  delay(DELAY_TIME);
  y1++;
  full(x1,y1,color1); /*递归调用*/
 }
 x1=x; y1=y;
 color2=getpixel(x1,y1-1); /*读(x1,y1+1)点颜色值*/
 if(color2!=color1) /*判断是否与填充色相等*/
 {putpixel(x1,y1,color1); /*画点(x1,y1) */
  delay(DELAY_TIME);
  y1--;
  full(x1,y1,color1); /*递归调用*/
 }
 return;
}
相关文章
|
2月前
|
API C++ 计算机视觉
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
【opencv3】鼠标框选矩形并显示当前像素点坐标和矩形中心点坐标C++
|
2月前
|
监控 计算机视觉
指定的颜色范围过滤出特定颜色的区域
指定的颜色范围过滤出特定颜色的区域
36 5
|
2月前
|
算法
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
58 1
|
8月前
echarts折线图线条颜色和区域颜色设置
echarts折线图线条颜色和区域颜色设置
108 0
|
8月前
Echarts去掉叠堆折线区域图的区域颜色
Echarts去掉叠堆折线区域图的区域颜色
61 0
|
数据可视化
ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。
编写Java程序:在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。
|
Web App开发 前端开发