예제 #1
0
        public void figureInfo(LittleShape2 temp2)
        {
            String str  = "";
            String str3 = "";

            temp2.setAngleList();
            if (temp2.anglesArr != null)
            {
                foreach (var item in temp2.anglesArr)
                {
                    str3 += item.ToString() + "° ";
                }
            }

            str = "Maccа фигуры: " + temp2.Mass + "\nТекущый индекс: " + curentindex.ToString() + "\n Количество фигур: " + curentList.Count.ToString() +
                  "\nУглы: " + str3 + "Status :" + thredValues.ThreadState.ToString();
            ;

            FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run(str)));

            textik.Document = flowDoc;
        }
예제 #2
0
        /// <summary>
        /// виборка одной фигуры по индексу
        /// </summary>
        /// <param name="mass"></param>
        public LittleShape2 selectOneShape(int m)
        {
            LittleShape2 query2 = null;

            lock (Filler.locker)
            {
                query2 = Filler.mainListFigures[m].Clone() as LittleShape2;
            }

            myMatrixTransformScaleMini(ref query2);

            query2.setAngleList(3);


            //List<LittleShape2> request = new List<LittleShape2>();
            //List<LittleShape2> tempRequest = new List<LittleShape2>();
            //проверка всех углов
            // checkbox
            //Две геометрические фигуры называются равными, если их можно совместить наложением.
            // как вариант будем одну фигуру вращать
            // надо длину, угол и порядок следования
            // сейчас есть 3 квадрата что позволяет думать что мы вроде делаем 3 лишних действия
            // ---------------------------------------------сразу искать не координаты а вектора фигур но  12в степени 12 еще никто не отменял
            //if (cb.IsChecked == true && query2.Count > 0)
            //{
            //    //фигуры из запроса надо теперь их обработать
            //    // для всех выставить  градусы
            //    foreach (var item in query2)
            //    {
            //        LittleShape2 fig2 = item.Clone() as LittleShape2;
            //        myMatrixTransformScale(ref fig2);
            //        fig2.setAngleList(3);
            //        request.Add(fig2);
            //    }

            //    List<int> index2 = new List<int>();
            //    // проход по всем фигурам кроме последней - будет сверяться две фигуры
            //    for (int i = 0; i < request.Count - 1; i++)
            //    {
            //        if (request[i] == null) continue;

            //        var x1 = request[i];   //фигура а


            //        for (int j = i + 1; j < request.Count; j++) //беру все остальные фиг поочереди поворачивая и проверяю на совпадения
            //        {
            //            if (request[j] == null) continue;
            //            var x2 = request[j];  // фигура следующая // временая фигура она будет или null или не будет
            //            double[] temp = x2.anglesArr.ToArray();


            //            for (int k = 0; k < x2.anglesArr.Count(); k++) //  здесь сравнение и поворот фигуры второй
            //            {
            //                //var a1 = x2.anglesArr.ToArray();
            //                bool resEual = equalFun(x1.anglesArr, temp);  //проверка

            //                if (resEual == true)//ok  okokokokokokokokokokokok
            //                {
            //                    request[j] = null; //                      1111111111111111111111111
            //                    break;
            //                }
            //                else
            //                {
            //                    temp = x2.nextAngle(k);
            //                }


            //            }

            //        }

            //        query2 = request.Where(x => x != null).ToList();

            //    }



            //}

            return(query2);
        }