/// <summary> /// 对当前输入的参数使用bresenham算法画圆 /// </summary> /// <param name="center">圆心坐标</param> /// <param name="R">半径</param> /// <param name="color">颜色</param> public void drawCircle_Bresenham(Point center, int R, Color color) { CG_Circle newCircle = new CG_Circle(center, R, color); foreach (Point cur in newCircle.getPoints()) { drawOnCanvas(cur, color); } }
/// <summary> /// 对当前输入的参数,在圆列表中创建图元并画出来 /// </summary> /// <param name="center">圆心坐标</param> /// <param name="R">半径</param> /// <param name="color">颜色</param> /// <param name="name">名称</param> public void drawCircle_Bresenham(Point center, int R, Color color, string name) { CG_Circle newCircle = new CG_Circle(center, R, color); newCircle.Name = name; listCircle.AddLast(newCircle); curCircle = newCircle; drawCircle_Bresenham(center, R, color); }
/// <summary> /// 根据名称改变当前curXXX所指向的图元,返回值表示所选中的图元类型 /// </summary> /// <param name="name">名称</param> /// <returns>line直线 circle圆 polygon多边形 rectangle矩形</returns> public string changeCurPrimitive(string name) { LinkedListNode <CG_Line> curL = listLine.First; while (curL != null) { if (curL.Value.Name == name) { curLine = curL.Value; return("line"); } curL = curL.Next; } LinkedListNode <CG_Circle> curC = listCircle.First; while (curC != null) { if (curC.Value.Name == name) { curCircle = curC.Value; return("circle"); } curC = curC.Next; } LinkedListNode <CG_Polygon> curPol = listPolygon.First; while (curPol != null) { if (curPol.Value.Name == name) { curPolygon = curPol.Value; return("polygon"); } curPol = curPol.Next; } LinkedListNode <CG_Rectangle> curRec = listRectangle.First; while (curRec != null) { if (curRec.Value.Name == name) { curRectangle = curRec.Value; return("rectangle"); } curRec = curRec.Next; } LinkedListNode <CG_Bezier> curBez = listBezier.First; while (curBez != null) { if (curBez.Value.Name == name) { curBezier = curBez.Value; return("bezier"); } curBez = curBez.Next; } return(null); }