正在加载图片...
putpixel(x y, color maino scanf(%d",&n);//分割的圆弧数 for(i=l:i<=n;i+ scanf(%d,%d,%d,%d,%d〃,&x1,&y1,&x2,&y2,,&k);//要求x1<x2 midpoint(xl, y1, x2, y2, r, color, k) 7、设计一个多边形区域填充算法,使其边界像素具有一个值,而内部的像素具有另一个值 算法设计: (1)使用画线语句绘制多边形 (2)计算窗口客户区的水平边界最大值MaxX和垂直边界最大值MaxY (3)调用系统调色板,设置颜色值 Fillcolor为调色板上取得的颜色, BAckcolor为 白色。 (4)对于每一条边,y从y开始,执行下面的循环。 (5)x从扫描线和边的交点处开始到窗口客户区右边界,先获得(x,y)位置的像素颜色 如果是填充色,则置成背景色,否则所有填充色填充。执行x=x+1/k,计算下一个 x起点值 (6)如果y=y,则扫描结束,否则y++,转(5)。 主要代码 int maxX. MaxY Void GetMaxXO∥求屏幕最大x值 CRect rect; GetClientRect(rect) MaxX-rect riht Void GetMaxYO∥求屏幕最大y值 CRect rect; GetClientRect(rect) MaxX-rect bottom Void DrawL∥填充多边形函数 COLORREF CBack Color=RGB(255, 255, 255); //EE CClientDC dc(this)} } putpixel(x,y,color); main() { scanf(“%d”,&n);//分割的圆弧数 for (i=1;i<=n;i++) { scanf(“%d,%d,%d,%d,%d”,&x1,&y1,&x2,&y2,,&k); //要求 x1<x2 midpoint(x1,y1,x2,y2,r,color,k); 7、设计一个多边形区域填充算法,使其边界像素具有一个值,而内部的像素具有另一个值。 算法设计: (1) 使用画线语句绘制多边形 (2) 计算窗口客户区的水平边界最大值 MaxX 和垂直边界最大值 MaxY (3) 调用系统调色板,设置颜色值 FillColor 为调色板上取得的颜色,CBackColor 为 白色。 (4) 对于每一条边,y 从 ymin开始,执行下面的循环。 (5) x 从扫描线和边的交点处开始到窗口客户区右边界,先获得(x, y)位置的像素颜色, 如果是填充色,则置成背景色,否则所有填充色填充。执行 x=x+1/k,计算下一个 x 起点值。 (6) 如果 y=ymin,则扫描结束,否则 y++,转(5)。 主要代码: int MaxX,MaxY; Void GetMaxX() //求屏幕最大 x 值 { CRect rect; GetClientRect(rect); MaxX=rect.riht; } Void GetMaxY() //求屏幕最大 y 值 { CRect rect; GetClientRect(rect); MaxX=rect.bottom; } Void Draw() //填充多边形函数 { COLORREF CBackColor=RGB(255,255,255);//白色 CClientDC dc(this);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有