CAD教程 行业资讯 3D模型下载 Pro/E教程 CAD书店 软件下载 联系我们
技术资料 CAD招聘 发布招聘 CAD问答 设计竞赛 CAD认证 北京CAD培训
视频教程 PS教程 CAD图纸 图书推荐 Solidworks教程 CAD培训 CAD软件商

 最新视频教程Pro/ENGINEER Wildfire2.0 工业设计实例视频教程 (全套免费在线学习)   AutoCAD视频教程每日更新
 
首页 > CAD在线问答 > 计算机图形学

图形学代码,求教。

2014-09-11 CAD教育网 http://www.cadedu.com



问题描述:代码如下,麻烦帮我每句翻译。分数追加。。。。。。

#include<graphics.h>
#include<stdio.h>
#define bordercolor 15
#define backcolor 0
#define seedcolor 4
#define fillcolor 10

typedef struct Point
{int x;
int y;
}point;

typedef struct Stack
{point *base;
point *top;
}*stack;

void initstack(stack s)
{(*s).base=(point*)malloc(sizeof(point));
if(!(*s).base)exit(1);
(*s).top=(*s).base;
}

void push(stack s,point p)
{*((*s).top)=p;
(*s).top++;
}

int stackempty(stack s)
{if((*s).top==(*s).base)return(1);
else return(0);
}

point pop(stack s)
{(*s).top--;
return(*((*s).top));
}

void drawgraphics()
{rectangle(100,100,539,299);
rectangle(150,150,489,249);
}

point produceseed()
{point p;
p.x=200;
p.y=200;
return(p);
}

void intostack(stack s,int y0,int xl,int xr)
{int x,y;
point tm;
for(x=xl,y=y0;x<=xr&&x<getmaxx();x++)
{if((x!=xr&&getpixel(x,y)==backcolor&&getpixel(x+1,y)!=backcolor)||(x==xr&&getpixel(x,y)==backcolor))
{tm.x=x;
tm.y=y;
push(s,tm);
putpixel(x,y,seedcolor);
}
if(x==xr&&getpixel(x,y)==backcolor)break;
}
}

void fillgraphics()
{int xl=0,xr=getmaxx(),x,y;
point seed;
stack s=NULL;
seed=produceseed();
putpixel(seed.x,seed.y,seedcolor);
getch();
initstack(s);
push(s,seed);
while(!stackempty(s))
{seed=pop(s);
for(x=seed.x,y=seed.y;getpixel(x,y)==backcolor||getpixel(x,y)==seedcolor;x++)
{putpixel(x,y,fillcolor);
}
xr=x-1;
for(x=seed.x-1,y=seed.y;getpixel(x,y)==backcolor||getpixel(x,y)==seedcolor;x--)
{putpixel(x,y,fillcolor);
}
xl=x+1;
intostack(s,seed.y+1,xl,xr);
intostack(s,seed.y-1,xl,xr);
getch();
}
}

main()
{int gdriver,gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(&gdriver,&gmode,"c:\tc");
drawgraphics();
fillgraphics();
outtextxy(180,20,"Scanline filling graphics finished!");
getch();
closegraph();

回答:貌似是C,不懂这东西,下面的继续~~~



 

 

求计算机图形学的习题
计算机图形学以后的就业方向,难都是次要的,主要是他能够在那些方面用上
我来回答 共有条 回答
用户名: 密码:
验证码: 匿名发表
| AutoCAD | Pro/E | UG | 3Dmax | catia | solidworks | maya | photoshop | 模具设计 | 有限元 | matlab | 计算机图形学 | 室内设计 |