private void AddNormalContinuousToFigure(ArrayList al, JDStruc jdstruc, Hashtable drawht, Color penColor, int index)
        {
            double           jdtop       = jdstruc.JDtop;
            string           prekdcname  = "No";
            double           preyval     = 0;
            double           prexvalue   = 0;
            string           currkdcname = "";
            LJJSPoint        lrptstart;
            LJJSPoint        currpt     = new LJJSPoint(0, 0);
            List <LJJSPoint> drawptcol  = new List <LJJSPoint>();
            List <LJJSPoint> outdrawcol = new List <LJJSPoint>();

            List <List <LJJSPoint> > outdrawcollist = new List <List <LJJSPoint> >();

            double      jdbottom = jdstruc.JDBottom;
            ZuoBiaoOper zbopp    = new ZuoBiaoOper(FrameDesign.ValueCoordinate);
            LJJSPoint   prept    = new LJJSPoint(0, 0);
            KeDuChiItem drawkdc  = null;
            LJJSPoint   chajieinterpt;//超界交点
            KeDuChiItem outdrawkdc = m_KDCList[m_KDCList.Count - 1];
            double      lastxvalue = 0;


            #region
            for (int i = 0; i < al.Count; i++)
            {
                double yval   = (double)al[i];
                double xvalue = (double)drawht[yval]; //获取 每个点x,y的值

                drawkdc = PointIfChaoJie(yval, drawht);

                if (drawkdc != null)//该点未超界;
                {
                    outdrawkdc = drawkdc;
                    lrptstart  = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdstruc.JDPtStart, LineRoadEnvironment.LineRoadWidth);

                    this.lrptstart     = lrptstart;
                    this.lrptstartName = lineItemStruct.LiSubClass;
                    //MessageBox.Show(string.Format("lrptstart:({0},{1})", lrptstart.XValue.ToString(), lrptstart.YValue.ToString()));

                    currkdcname = drawkdc.KName;
                    currpt      = GetPtZBByKDC(drawkdc, jdstruc.JDPtStart, (double)drawht[yval], yval, jdstruc.JDtop);
                    prept       = currpt;
                    if (StrUtil.IfTwoStrEqul(prekdcname, currkdcname))
                    {
                        drawptcol.Add(currpt);//和上一点为同一刻度尺;则加入绘图集合;
                    }
                    else//开始下一段曲线的操作;分为从超界曲线向非超界的跳变,也有可能是非超界之间的跳变;
                    {
                        if (prekdcname.Equals(""))//从超界曲线向非超界的跳变
                        {
                            if (lastxvalue < drawkdc.KMin)
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue);
                            }
                            else
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue + outdrawkdc.KDir * LineRoadEnvironment.LineRoadWidth);
                            }


                            outdrawcol.Add(chajieinterpt);
                            drawptcol.Clear();
                            drawptcol.Add(chajieinterpt);

                            if (outdrawcol.Count > 0)
                            {
                                outdrawcollist.Add(outdrawcol);
                            }
                        }
                        else//非超界之间的跳变;
                        {
                            if (drawptcol.Count > 1)
                            {
                                this.DrawContinuousLine(drawptcol, prekdcname, drawkdc.kLineWidth, penColor);//绘制上一段曲线;
                            }

                            drawptcol.Clear();
                        }
                        drawptcol.Add(currpt);
                    }
                    prekdcname = currkdcname;
                    prexvalue  = (double)drawht[yval];
                    preyval    = yval;
                }
                else//该点已超界  drawkdc == null
                {
                    if (m_KDCList.Count > 0)
                    {
                        currpt      = GetPtZBByKDC(outdrawkdc, jdstruc.JDPtStart, (double)drawht[yval], yval, jdstruc.JDtop);
                        currkdcname = "";
                        if (lineItemStruct.LineItemChaoJie == CJQXChaoJie.BiaoZhu) //添加标注信息;
                        {
                            if (!StrUtil.IfTwoStrEqul(prekdcname, currkdcname))    //跳变点
                            {
                                lrptstart          = ZuoBiaoOper.UpdateLRStartPt(outdrawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
                                this.lrptstart     = lrptstart;
                                this.lrptstartName = lineItemStruct.LiSubClass;
                                if (xvalue < outdrawkdc.KMin)
                                {
                                    chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue);
                                }
                                else
                                {
                                    chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue + outdrawkdc.KDir * lineRoadEnvironment.LineRoadWidth);
                                }
                                drawptcol.Add(chajieinterpt);
                                if (drawptcol.Count > 0)
                                {
                                    this.DrawContinuousLine(drawptcol, prekdcname, outdrawkdc.kLineWidth, penColor);//绘制上一段非超界曲线;


                                    drawptcol.Clear();
                                }
                            }
                            prept      = currpt;
                            prekdcname = currkdcname;
                            prexvalue  = (double)drawht[yval];
                            preyval    = yval;

                            continue;
                        }


                        if (StrUtil.IfTwoStrEqul(prekdcname, currkdcname))
                        {
                            outdrawcol.Add(currpt);//和上一点为同一刻度尺;则加入绘图集合;
                        }
                        else//此时为从非超界向超界跳变;上一段非超界曲线结束;
                        {
                            outdrawcol         = new List <LJJSPoint>();
                            lrptstart          = ZuoBiaoOper.UpdateLRStartPt(outdrawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);
                            this.lrptstart     = lrptstart;
                            this.lrptstartName = lineItemStruct.LiSubClass;
                            if (xvalue < outdrawkdc.KMin)
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue);
                            }
                            else
                            {
                                chajieinterpt = ZuoBiaoOper.GetTiaoBianIntersectionPoint(currpt, prept, lrptstart.XValue + outdrawkdc.KDir * lineRoadEnvironment.LineRoadWidth);
                            }

                            drawptcol.Add(chajieinterpt);
                            if (drawptcol.Count > 1)
                            {
                                this.DrawContinuousLine(drawptcol, prekdcname, outdrawkdc.kLineWidth, penColor);//绘制上一段非超界曲线;

                                drawptcol.Clear();
                            }
                            if (outdrawcol.Count > 0)
                            {
                                outdrawcollist.Add(outdrawcol);
                            }
                            outdrawcol.Clear();
                            if (i != 0)
                            {
                                outdrawcol.Add(chajieinterpt);
                            }


                            outdrawcol.Add(currpt);
                            prekdcname = currkdcname;
                            prexvalue  = (double)drawht[yval];
                            preyval    = yval;
                        }
                    }
                }
                prept      = currpt;
                lastxvalue = xvalue;
            }//遍历完所有的点;
            #endregion
            lrptstart = ZuoBiaoOper.UpdateLRStartPt(outdrawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth);


            this.set_start_point_dele = SuiZuanForm.set_startpoint; //这两行代码用于随钻界面画图后界面的放大,如果是绘图可无视
            this.set_start_point_dele(lrptstart);                   //这两行代码用于随钻界面画图后界面的放大,如果是绘图可无视
            this.lrptstart     = lrptstart;
            this.lrptstartName = lineItemStruct.LiSubClass;
            if ((currkdcname == "") && (outdrawcol.Count > 1))
            {
                outdrawcollist.Add(outdrawcol);


                //add here?
            }



            if (drawptcol.Count > 1 && drawkdc != null)
            {
                //在循环进行完毕,将drawptcol ,即画的线上的所有点的集合保存在一个静态类中
                if (lineItemStruct.LiSubClass == "msev" && DrawPointContainer.list[index].msevList == null)
                {
                    DrawPointContainer.list[index].msevList = drawptcol;
                    //MsehAndMsevContainer.msevList = drawptcol;
                }
                if (lineItemStruct.LiSubClass == "mseh" && DrawPointContainer.list[index].msehList == null)
                {
                    DrawPointContainer.list[index].msehList = drawptcol;
                }

                if (lineItemStruct.LiSubClass == "wxcs" && DrawPointContainer.list[index].wxcsList == null)
                {
                    DrawPointContainer.list[index].wxcsList = drawptcol;
                }

                if (lineItemStruct.LiSubClass == "wxcs2" && DrawPointContainer.list[index].WXCSJiaoHuiList == null)
                {
                    DrawPointContainer.list[index].WXCSJiaoHuiList = drawptcol;
                }

                if (lineItemStruct.LiSubClass == "jgl" && DrawPointContainer.list[index].JinGeiLiangList == null)
                {
                    DrawPointContainer.list[index].JinGeiLiangList = drawptcol;
                }


                this.DrawContinuousLine(drawptcol, currkdcname, drawkdc.kLineWidth, penColor);//绘制上一段非超界曲线;在此画线
            }

            if (outdrawcollist.Count > 0)
            {
                AddChaoJieLine(outdrawcollist, lrptstart.XValue + outdrawkdc.KDir * lineRoadEnvironment.LineRoadWidth, outdrawkdc.KDir, outdrawkdc.KName, outdrawkdc.kLineWidth, penColor);
            }
        }