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;
}
相关文章
在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。
编写Java程序:在画图软件中,可以画出不同大小或颜色的圆形、矩形等几何图形。几何图形之间有许多共同的特征,如它们可以是用某种颜色画出来的,可以是填充的或者不填充的。
|
C++
矩形和区域
下面有三个绘图函数需要一个指向矩形结构的指针: FillRect(hdc,&rect,hbursh);//填充 FrameRect(hdc,&rect,hbrush);//掏空 InvertRect(hdc,&rect);//内部取反 [cpp] view plaincopy ...
884 0
|
C# 图形学
C#窗口矩形区域着色
C#写的一个GUI窗口,有几百个矩形区域。每个矩形区域的颜色随时都可能改变,并且多次改变。 我放弃使用label绘制矩形,因为效果不好。拖控件的界面使用power packs中的rectangleshape绘制。
875 0
|
10月前
|
监控 计算机视觉
指定的颜色范围过滤出特定颜色的区域
指定的颜色范围过滤出特定颜色的区域
73 5
|
4月前
|
开发工具
如何设置单元格的填充颜色?
【10月更文挑战第22天】如何设置单元格的填充颜色?
118 2
Echarts去掉叠堆折线区域图的区域颜色
Echarts去掉叠堆折线区域图的区域颜色
153 0
|
数据可视化
ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
线段平滑伸直及线条图形填充
一、线段的平滑与伸直功能 图1-1-1     使用铅笔工具画一条曲线,选中曲线分别点击工具条下的平滑与伸直功能,自动会将曲线进行平滑与伸直操作。
694 0
VC 如何对不规则图形填充颜色
CRect rectCheck = rectBox; rectCheck.left += 3; rectCheck.top += 3; penLed.DeleteObject(); penLed.
550 0

热门文章

最新文章