用c语言画矩形??急??急???

beijing2008688 2008-05-09 10:56:39
用c语言画出一个嵌套矩形,就是大矩形里有小矩形,里面包含50个矩形吧,矩形之间有颜色的区别.谢谢各位高手了>>
...全文
701 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiwenlu518 2008-05-13
  • 打赏
  • 举报
回复
顶了
chlaws 2008-05-10
  • 打赏
  • 举报
回复

#include "graphics.h"
#include "dos.h"
#include <stdlib.h>
#define ENTER 0x1c0d
#define SPACE 0x3920
#define ESC 0x011b
main()
{
int x0,y0,y1,x1,driver,mode,i;
int a;
int b;
int key;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
x0=50;y0=50;y1=400;x1=600;

for(i=0;i<50;i++)
{
a=i%8;
b=i%14;

setcolor(b);
rectangle(x0,y0,x1,y1); /* 画一个矩形 */
setfillstyle(1,a);
floodfill(x0+1,y0+1,b);
x0=x0+3;
y0=y0+3;
x1=x1-3;
y1=y1-3;
key=bioskey(0);
if(key==ESC)/*按ESC键退出*/
exit(1);
if(key == ENTER) /* 键盘Enter键的键值 */
continue; /*按回车则跳过延时*/
delay(1000);
}
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); /* 为图形输出设置当前文本属性 */
outtextxy(150,40,"How eautiful it is!");
setcolor(2);
}

chlaws 2008-05-10
  • 打赏
  • 举报
回复
TC延时函数delay();
bioskey() 接受enter键被按下的信息
key=bioskey(0);

//if(true) 跳过delay直接执行
if(key == 0x6C)// 键盘Enter键对应的ASCII码值
continue
delay(1000);
beijing2008688 2008-05-10
  • 打赏
  • 举报
回复
再加上个延时,键盘响应更好。谢谢各位了
yanvenhom 2008-05-10
  • 打赏
  • 举报
回复
TC,TC,学习下~~~~
candy110 2008-05-09
  • 打赏
  • 举报
回复
你可以定义两个RECT的数组.
用于纪录最近画的两个矩形的尺寸.
RECT包含的字段有left,top,right,bottom;
这两个矩形之间的空间是由四个矩形组成.
上矩形:
left=大left;
top=大top;
right=大right;
bottom=小top;
下矩形:
left=大left;
top=小bottom;
right=大right;
bottom=大bottom;
左矩形:
left=大left;
top=大top;
right=小left;
bottom=大bottom;
右矩形:
left=小right;
top=大top;
right=大right;
bottom=大bottom;
然后对这个区域着色.
这四个矩形有重叠的地方.但是并影响你对着色.
zhangbin_115 2008-05-09
  • 打赏
  • 举报
回复
很复杂啊,学习一下
sleepynow 2008-05-09
  • 打赏
  • 举报
回复
矩形其实就是画四条线,不过这四个点好合法*_*
chlaws 2008-05-09
  • 打赏
  • 举报
回复

//符合你的要求
#include "graphics.h"
main()
{
int x0,y0,y1,x1,driver,mode,i;
int a;
int b;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
x0=50;y0=50;y1=400;x1=600;

for(i=0;i<50;i++)
{
a=i%8;
b=i%14;

setcolor(b);
rectangle(x0,y0,x1,y1); /* 画一个矩形 */
setfillstyle(1,a);
floodfill(x0+1,y0+1,b);
x0=x0+3;
y0=y0+3;
x1=x1-3;
y1=y1-3;
}
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); /* 为图形输出设置当前文本属性 */
outtextxy(150,40,"How eautiful it is!");
setcolor(2);
}

Walker-cheng 2008-05-09
  • 打赏
  • 举报
回复
定义多个矩形框,绘制的顺序要先大后小...

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧