コード例 #1
0
 public override void BuildWayB(ref Point b)
 {
     if (b.coef_comm.Count() <= 2)                             //если В - линейный участок
     {
         if (!wayB.Contains(b))                                //и если нет В в списке нелинейного пути вблизи В
         {
             wayB.Add(b);                                      //то добавляем в этот список
         }
         b = PointCommunications.NextPointByWay(b, wayB);      //и идем к следующей точке от В и переопределяем ее
     }
 }
コード例 #2
0
        public override void BuildWayB(ref Point b)
        {
            if (b.coef_comm.Count() <= 2)                             //если В - линейный участок
            {
                //wayB.Add(b);
                if (!wayB.Contains(b))       //и если нет В в списке нелинейного пути вблизи В
                {
                    if (wayA.Count == 0 || wayB.Count == 0)
                    {
                        wayB.Add(b);                                     //то добавляем в этот список
                        b = PointCommunications.NextPointByWay(b, wayB);
                    }
                    else if (wayB.First() != wayA.Last())
                    {
                        wayB.Add(b);
                        List <Point> buff = new List <Point>();
                        foreach (Point o in wayB)
                        {
                            buff.Add(o);
                        }

                        b = wayB.First();
                        buff.Remove(wayB.First());
                        wayB.Clear();
                        wayB.Add(b);
                    }
                    else
                    {
                        wayB.Add(b);                                     //то добавляем в этот список
                        b = PointCommunications.NextPointByWay(b, wayB);
                    }
                }
                else if (wayB.Count != 0 && b.coef_comm.Count() == 1)
                {
                    wayB.Add(b);
                    List <Point> buff = new List <Point>();
                    foreach (Point o in wayB)
                    {
                        buff.Add(o);
                    }

                    b = wayB.First();
                    buff.Remove(wayB.First());
                    wayB.Clear();
                    wayB.Add(b);

                    b = PointCommunications.NextPointByWay(b, buff);

                    //берем другую точку, которая в другой стороне и не содержится в wayB
                }
                //и идем к следующей точке от В и переопределяем ее
            }
        }
コード例 #3
0
 PointCommunications PC = new PointCommunications();          //после редактирования удалить и сделать этот класс статическим
 public override bool BuildWayA(ref Point a)
 {
     if (!wayA.Contains(a) && (a.coef_comm.Count() <= 2))
     {
         wayA.Add(a);                                          //то уже идем от точки А, добавляя ее в коллекцию вблизи А
         a = PointCommunications.NextPointByWay(a, wayA);      //и берем следующую точку по пути от А и переопределяем ее
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #4
0
        PointCommunications PC = new PointCommunications();          //после редактирования удалить и сделать этот класс статическим
        public override bool BuildWayA(ref Point a)
        {
            if (!wayA.Contains(a) && (a.coef_comm.Count() <= 2))
            {
                if (wayA.Count == 0 || wayB.Count == 0)
                {
                    wayA.Add(a);                                          //то уже идем от точки А, добавляя ее в коллекцию вблизи А
                    a = PointCommunications.NextPointByWay(a, wayA);      //и берем следующую точку по пути от А и переопределяем ее
                    return(true);
                }
                else if (wayA.First() != wayB.Last())
                {
                    wayA.Add(a);
                    List <Point> buff = new List <Point>();
                    foreach (Point o in wayA)
                    {
                        buff.Add(o);
                    }

                    a = wayA.First();
                    buff.Remove(wayA.First());
                    wayA.Clear();
                    wayA.Add(a);
                }
                else
                {
                    wayA.Add(a);                                     //то добавляем в этот список
                    a = PointCommunications.NextPointByWay(a, wayA);
                    return(true);
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }