コード例 #1
0
ファイル: Canvas.cs プロジェクト: againcy/CG_Exp_2d
        /// <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);
            }
        }
コード例 #2
0
ファイル: Canvas.cs プロジェクト: againcy/CG_Exp_2d
        /// <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);
        }
コード例 #3
0
ファイル: Canvas.cs プロジェクト: againcy/CG_Exp_2d
        /// <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);
        }