//输出画图图元列表 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); }
//输出画图图元列表 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); }