示例#1
0
        //输出画图图元列表
        private List <GElement> OutputGraphics()
        {
            List <GElement> gList = new List <GElement>(); // 图元列表

            string   outputInfo = "";
            int      n = mTraverseLine.Lines.Count;
            GElement tempGe = null;  //临时图元变量
            PointF   startPt, endPt; //直线端点

            //获得线图元
            for (int i = 0; i <= n - 2; i++)
            {
                if (i == 0)//开头已知边
                {
                    startPt   = new PointF();
                    endPt     = new PointF();
                    startPt.X = (float)mTraverseLine.Lines[i].StartPt.X;
                    startPt.Y = (float)mTraverseLine.Lines[i].StartPt.Y;
                    endPt.X   = (float)mTraverseLine.Lines[i].EndPt.X;
                    endPt.Y   = (float)mTraverseLine.Lines[i].EndPt.Y;
                    tempGe    = new Line2(null, startPt, endPt, Color.Red);
                }
                else//中间量测边
                {
                    startPt   = new PointF();
                    endPt     = new PointF();
                    startPt.X = (float)mTraverseLine.Lines[i].StartPt.X;
                    startPt.Y = (float)mTraverseLine.Lines[i].StartPt.Y;
                    endPt.X   = (float)mTraverseLine.Lines[i].EndPt.X;
                    endPt.Y   = (float)mTraverseLine.Lines[i].EndPt.Y;
                    tempGe    = new Line1(null, startPt, endPt, Color.White);
                }//endelse

                gList.Add(tempGe);
            }//endfor
            if (mTraverseLine.NetType == 1)//附和导线,最后一条已知边
            {
                startPt   = new PointF();
                endPt     = new PointF();
                startPt.X = (float)mTraverseLine.Lines[n - 1].StartPt.X;
                startPt.Y = (float)mTraverseLine.Lines[n - 1].StartPt.Y;
                endPt.X   = (float)mTraverseLine.Lines[n - 1].EndPt.X;
                endPt.Y   = (float)mTraverseLine.Lines[n - 1].EndPt.Y;
                tempGe    = new Line2(null, startPt, endPt, Color.Red);
                gList.Add(tempGe);
            }//endif

            //获得点图元
            for (int i = 0; i <= n - 3; i++)
            {
                if (i == 0)//开头已知边端点
                {
                    startPt   = new PointF();
                    endPt     = new PointF();
                    startPt.X = (float)mTraverseLine.Lines[i].StartPt.X;
                    startPt.Y = (float)mTraverseLine.Lines[i].StartPt.Y;
                    endPt.X   = (float)mTraverseLine.Lines[i].EndPt.X;
                    endPt.Y   = (float)mTraverseLine.Lines[i].EndPt.Y;

                    tempGe = new PointN(mTraverseLine.Lines[i].StartPt.Name, startPt, Color.Red);
                    gList.Add(tempGe);
                    tempGe = new PointN(mTraverseLine.Lines[i].EndPt.Name, endPt, Color.Red);
                    gList.Add(tempGe);
                }
                else//中间量测边端点
                {
                    endPt   = new PointF();
                    endPt.X = (float)mTraverseLine.Lines[i].EndPt.X;
                    endPt.Y = (float)mTraverseLine.Lines[i].EndPt.Y;
                    tempGe  = new PointUn(mTraverseLine.Lines[i].EndPt.Name, endPt, Color.White);
                    gList.Add(tempGe);
                } //endelse
            }     //endfor
            if (mTraverseLine.NetType == 1)//附和导线,最后一条已知边端点
            {
                startPt   = new PointF();
                endPt     = new PointF();
                startPt.X = (float)mTraverseLine.Lines[n - 1].StartPt.X;
                startPt.Y = (float)mTraverseLine.Lines[n - 1].StartPt.Y;
                endPt.X   = (float)mTraverseLine.Lines[n - 1].EndPt.X;
                endPt.Y   = (float)mTraverseLine.Lines[n - 1].EndPt.Y;

                tempGe = new PointN(mTraverseLine.Lines[n - 1].StartPt.Name, startPt, Color.Red);
                gList.Add(tempGe);
                tempGe = new PointN(mTraverseLine.Lines[n - 1].EndPt.Name, endPt, Color.Red);
                gList.Add(tempGe);
            }//endif

            return(gList);
        }
示例#2
0
        //输出画图图元列表
        private List <GElement> OutputGraphics()
        {
            List <GElement> gList = new List <GElement>(); // 图元列表

            int      n = mX.Length;
            GElement tempGe = null;  //临时图元变量
            PointF   startPt, endPt; //直线端点

            //获得线图元
            //第1条已知边
            startPt   = new PointF();
            endPt     = new PointF();
            startPt.X = (float)mX0[0];
            startPt.Y = (float)mY0[0];
            endPt.X   = (float)mX0[1];
            endPt.Y   = (float)mY0[1];
            tempGe    = new Line2(null, startPt, endPt, Color.Red);

            gList.Add(tempGe);
            //中间量测边
            for (int i = 0; i < n - 1; i++)
            {
                startPt   = new PointF();
                endPt     = new PointF();
                startPt.X = (float)mX[i];
                startPt.Y = (float)mY[i];
                endPt.X   = (float)mX[i + 1];
                endPt.Y   = (float)mY[i + 1];
                tempGe    = new Line1(null, startPt, endPt, Color.White);

                gList.Add(tempGe);
            }//endfor
            if (mNetType == 1)//附和导线,最后一条已知边
            {
                startPt   = new PointF();
                endPt     = new PointF();
                startPt.X = (float)mX0[2];
                startPt.Y = (float)mY0[2];
                endPt.X   = (float)mX0[3];
                endPt.Y   = (float)mY0[3];
                tempGe    = new Line2(null, startPt, endPt, Color.Red);

                gList.Add(tempGe);
            }//endif

            //获得点图元
            //获得已知点
            PointF thePt = new PointF();

            thePt.X = (float)mX0[0];
            thePt.Y = (float)mY0[0];
            tempGe  = new PointN(mPname[0], thePt, Color.Red);
            gList.Add(tempGe);
            thePt   = new PointF();
            thePt.X = (float)mX0[1];
            thePt.Y = (float)mY0[1];
            tempGe  = new PointN(mPname[1], thePt, Color.Red);
            gList.Add(tempGe);

            for (int i = 1; i < n - 1; i++)
            {
                thePt   = new PointF();
                thePt.X = (float)mX[i];
                thePt.Y = (float)mY[i];
                tempGe  = new PointUn(mPname[i + 1], thePt, Color.White);
                gList.Add(tempGe);
            }//endif

            if (mNetType == 1)//附和导线,最后一条已知边上2个已知点
            {
                thePt   = new PointF();
                thePt.X = (float)mX0[2];
                thePt.Y = (float)mY0[2];
                tempGe  = new PointN(mPname[mPname.Length - 2], thePt, Color.Red);
                gList.Add(tempGe);
                thePt   = new PointF();
                thePt.X = (float)mX0[3];
                thePt.Y = (float)mY0[3];
                tempGe  = new PointN(mPname[mPname.Length - 1], thePt, Color.Red);
                gList.Add(tempGe);
            }//endif
            return(gList);
        }