Exemplo n.º 1
0
        //样条曲线显示
        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;
            }
        }
Exemplo n.º 2
0
        //样条曲线显示
        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);
        }