复杂多边形区域填充算法
List<Point> p1 = new List<Point> {
new Point(10,10),
new Point(10,100),
new Point(100,100),
new Point(100,10),
new Point(10,10)
};
List<Point> p2 = new List<Point> {
new Point(20,20),
new Point(20,90),
new Point(90,90),
new Point(90,20),
new Point(20,20)
};
List<Point> p3 = new List<Point> {
new Point(30,30),
new Point(30,80),
new Point(80,80),
new Point(80,30),
new Point(30,30)
};
List<Point> pa = new List<Point>();
pa.AddRange(p1);
pa.AddRange(p2);
pa.AddRange(p3);
pa.Add(new Point(80, 30));
pa.Add(new Point(90, 20));
pa.Add(new Point(100, 10));
Graphics g = this.CreateGraphics();
g.FillPolygon(new SolidBrush(Color.Red), pa.ToArray());
这个算法的思路有没有问题,虽然画出的图形是想要的,但总感觉逻辑不对,请高手们指点一下
new Point(10,10),
new Point(10,100),
new Point(100,100),
new Point(100,10),
new Point(10,10)
};
List<Point> p2 = new List<Point> {
new Point(20,20),
new Point(20,90),
new Point(90,90),
new Point(90,20),
new Point(20,20)
};
List<Point> p3 = new List<Point> {
new Point(30,30),
new Point(30,80),
new Point(80,80),
new Point(80,30),
new Point(30,30)
};
List<Point> pa = new List<Point>();
pa.AddRange(p1);
pa.AddRange(p2);
pa.AddRange(p3);
pa.Add(new Point(80, 30));
pa.Add(new Point(90, 20));
pa.Add(new Point(100, 10));
Graphics g = this.CreateGraphics();
g.FillPolygon(new SolidBrush(Color.Red), pa.ToArray());
这个算法的思路有没有问题,虽然画出的图形是想要的,但总感觉逻辑不对,请高手们指点一下
...全文
相关推荐
激光标刻的复杂区域填充算法
本文介绍了一种针对复杂区域的填充算法,该算法旨在通过减少填充线段的数量来提高激光加工效率。
实现多边形扫描转换和区域填充的计算机图形学项目
多边形扫描转换是计算机图形学中用于将多边形图形从矢量格式转换为光栅格式的技术。它涉及到将多边形的边界和内部转换为像素阵列的过程,这样计算机就可以在屏幕上显示它们。在计算机图形学中,交点计算是确定两个几何形状相交位置的过程。特别地,在扫描转换多边形时,计算扫描线与多边形边的交点是生成像素覆盖的基础。交点的精确计算不仅影响图形的渲染质量,还影响到渲染的速度。在计算机图形学中,多边形是通过顶点列表来定义的。每个顶点通常表示为一个二元组(x, y),表示其在二维空间中的坐标位置。
计算机图形学 边界定义的8连通区域的种子填充算法
在众多填充算法中,边界定义的8连通区域种子填充算法是一种常用的技术,它能够高效地处理复杂的多边形边界。
区域填充算法(多边形的填充)
此外,对于复杂形状或有洞的多边形,还需要更复杂的逻辑来正确填充。在压缩包文件"区域填充"中,可能包含了实现区域填充算法的代码示例、相关的教程资料或是演示此算法的应用程序。
多边形区域填充算法
填充算法的主要目的是将指定的多边形内部涂满颜色或者图案,使得视觉效果更加丰富和完整。在本话题中,我们将深入探讨几种常用的多边形区域填充算法。


