//样条曲线显示 private void BsplineReviewWithDir(string dataPath, Graphics gr) { //数据读取 StreamReader pathFile = File.OpenText(dataPath); List <string> tempString = new List <string>(); while (!pathFile.EndOfStream) { tempString.Add(pathFile.ReadLine()); } pathFile.Close(); //如果点数小于2,不能规划出轨迹 if (tempString.Count() < 2) { return; } Pen myPen = new Pen(System.Drawing.Color.Yellow, 1); PointF pntOld = new PointF(); PointF pntNow = new PointF(); float dirOld = 0.0f; float dirNow = 0.0f; int tempFlag = 0; foreach (string str in tempString) { string[] sArray = str.Split(','); PointF pnt; pntNow.X = float.Parse(sArray[0]); pntNow.Y = float.Parse(sArray[1]); dirNow = float.Parse(sArray[2]); pnt = ViewControl.GetPanelAxes(float.Parse(sArray[0]), float.Parse(sArray[1])); gr.DrawEllipse(myPen, pnt.X, pnt.Y, 3, 3); if (tempFlag == 0) { pntOld = pntNow; dirOld = dirNow; tempFlag = 1; continue; } Bspline.DrawBspline2(gr, pntOld, pntNow, dirOld, dirNow); pntOld = pntNow; dirOld = dirNow; } }
//样条曲线显示 private void BsplineReview(string dataPath, Graphics gr) { //数据读取 StreamReader pathFile = File.OpenText(dataPath); List <string> tempString = new List <string>(); while (!pathFile.EndOfStream) { tempString.Add(pathFile.ReadLine()); } pathFile.Close(); //如果点数小于2,不能规划出轨迹 if (tempString.Count() < 2) { return; } List <PointF> tempPnts = new List <PointF>(); Pen myPen = new Pen(System.Drawing.Color.Yellow, 1); foreach (string str in tempString) { string[] sArray = str.Split(','); PointF pnt; tempPnts.Add(new PointF(float.Parse(sArray[0]), float.Parse(sArray[1]))); pnt = ViewControl.GetPanelAxes(float.Parse(sArray[0]), float.Parse(sArray[1])); gr.DrawEllipse(myPen, pnt.X, pnt.Y, 3, 3); } System.Drawing.PointF[] tempPoint = tempPnts.ToArray(); myPen.Color = System.Drawing.Color.Yellow; Bspline.DrawBspline1(tempPnts.Count(), gr, myPen, tempPoint); }