public override List <Point> Points() { var len = vertices.Count; controlPolygonPoints = new List <Point>(); for (var i = 0; i < len - 1; i++) { var line = new BresenhamLine(vertices[i], vertices[i + 1], f); controlPolygonPoints.AddRange(line.Points()); } curvePoints = GetCurvePoints(); var result = new List <Point>(); // 手动将两个list合并成一个新的list foreach (var p in vertices) { result.Add(p); } foreach (var p in controlPolygonPoints) { result.Add(p); } foreach (var p in curvePoints) { result.Add(p); } return(result); }
// 以p点为中心开始扩展,填充 public override List <Point> Points() { List <Point> l = new List <Point>(); var len = vertices.Count; for (var i = 0; i < len; i++) { var p = new BresenhamLine(vertices[i], vertices[(i + 1) % len], f); l.AddRange(p.Points()); } return(l); }