示例#1
0
        public string Match(Bitmap face)
        {
            Matrix[] gray = new Matrix[1];
            gray[0] = GrayScale2d(face);
            //gray[0] = gray[0] * (1.0 / 255.0);
            Matrix image   = ConvertMatrix(gray);
            Matrix meanimg = image - _meanimage;
            Matrix reduced = meanimg.Transpose() * _EF;

            //NormalizeImage(reduced);
            distances = new List <distance>();
            for (int row = 0; row < _reducedImages.Rows; row++)
            {
                double distance = 0;
                for (int col = 0; col < TopValues; col++)
                {
                    distance += Math.Pow(reduced[0, col] - _reducedImages[row, col], 2);
                }
                distance dist = new distance();
                dist.face     = row;
                dist.Distance = distance;
                distances.Add(dist);
            }

            matchedname = _imagenames[distances.OrderBy(x => x.Distance).Select(x => x.face).First()];
            return(matchedname);

            foreach (distance dist in distances.OrderByDescending(x => x.Distance).Take(10))
            {
                Matrix a = _images.Submatrix(0, _images.Rows - 1, dist.face, dist.face);
                matchedimage = MatrixToBitMap(a);
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            distance distance = db.distances.Find(id);

            db.distances.Remove(distance);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#3
0
 private void OnGUI()
 {
     if (GUILayout.Button("find nearest enemy"))
     {
         distance Min = Judgeneardis();
         Min.GetComponent <MeshRenderer>().material.color = Color.red;
     }
 }
 public ActionResult Edit([Bind(Include = "EFKey,Code,Name,Value")] distance distance)
 {
     if (ModelState.IsValid)
     {
         db.Entry(distance).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(distance));
 }
        public ActionResult Create([Bind(Include = "EFKey,Code,Name,Value")] distance distance)
        {
            if (ModelState.IsValid)
            {
                db.distances.Add(distance);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(distance));
        }
示例#6
0
    private distance Judgeneardis()
    {
        distance[] Dis     = Object.FindObjectsOfType <distance>();
        distance   NearDis = Dis[0];

        for (int i = 1; i < Dis.Length; i++)
        {
            if (NearDis.Distance > Dis[i].Distance)
            {
                NearDis = Dis[i];
            }
        }
        return(NearDis);
    }
        // GET: racedistances/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            distance distance = db.distances.Find(id);

            if (distance == null)
            {
                return(HttpNotFound());
            }
            return(View(distance));
        }
示例#8
0
        public string FactoryDistance(ShippingDocument ship, LastestGpsInfo gps)
        {
            if (ship == null || gps == null)
            {
                return(null);
            }
            distanceByShip ds      = this.service.GetGenericService <distanceByShip>().Query().Where(m => m.shipdocid == ship.ID).FirstOrDefault();
            distance       dt      = this.service.GetGenericService <distance>().Query().Where(m => m.projectid == ship.ProjectID && m.CastMode.TreeCode == ship.CastMode).FirstOrDefault();
            var            factory = this.service.Company.GetCurrentCompany();

            if (ds == null || dt == null || ds.outbuilding == 0m)
            {
                string str = GetFactoryDistance(gps, factory);
                return(str);
            }
            decimal d = dt.distance - (gps.Distance.Value - ds.outbuilding);

            return(d < 0 ? (0.01m).ToString() : d.ToString());
        }
示例#9
0
        public List <distance> GetDistance(string sCity)
        {
            List <distance> lp  = new List <distance>();
            string          sql = "select * from t_distance order by descNum desc,id asc";

            using (DataTable dt = helper.GetDataTable(sql))
            {
                if (dt != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow r in dt.Rows)
                    {
                        distance b = new distance
                        {
                            d        = Convert.ToInt32(r["distance"]),
                            cityType = Convert.ToInt16(r["cityType"]),
                            //sCity = r["sCity"].ToString(),
                            tCity = r["tCity"].ToString(),
                        };
                        lp.Add(b);
                    }
                }
            }
            return(lp);
        }
示例#10
0
        private void DistanceLev(distance func, TextBox text, ListBox searchlist, TextBox tlimit)
        {
            string index = "";
            int    min   = text.Text.Length;
            int    limit;

            if (tlimit.Text != "")
            {
                limit = Convert.ToInt32(tlimit.Text);
            }
            else
            {
                limit = min;
            }
            if (r1.IsChecked == true)
            {
                Stopwatch stopWatch = new Stopwatch();
                TimeSpan  ts;
                stopWatch.Start();

                foreach (string s in list)
                {
                    int distance = func(text.Text, s);

                    if ((distance < min) && (distance <= limit))
                    {
                        min   = distance;
                        index = s;
                    }
                }

                stopWatch.Stop();
                ts = stopWatch.Elapsed;

                dataitem t = new dataitem();

                t.word = index;
                t.time = ts.TotalMilliseconds;

                bool flag = false;
                foreach (dataitem i in searchlist.Items)
                {
                    if (i.word.ToUpper() == t.word.ToUpper())
                    {
                        flag = true;
                    }
                }

                if (index == "")
                {
                    MessageBox.Show("Слово не найдено!");
                }
                else if (!flag)
                {
                    searchlist.Items.Add(t);
                }
                else
                {
                    MessageBox.Show("Слово уже найдено!");
                }
                text.Text = "Поиск по файлу";
            }
            else
            {
                searchlist.Items.Clear();
                Stopwatch stopWatch = new Stopwatch();
                TimeSpan  ts;
                stopWatch.Start();

                foreach (string s in list)
                {
                    int distance = func(text.Text, s);

                    if (distance <= limit)
                    {
                        dataradiobtn i = new dataradiobtn();
                        i.word = s;
                        i.dist = distance;
                        searchlist.Items.Add(i);
                    }
                }

                stopWatch.Stop();
                ts = stopWatch.Elapsed;

                if (tlimit.Name == "DLevLimit")
                {
                    timeserachdlev = ts.TotalMilliseconds;
                }
                else
                {
                    timeserachlev = ts.TotalMilliseconds;
                }

                timelev.Content = ts.TotalMilliseconds + " мс";
            }
        }
示例#11
0
        private void parallel_search(distance func, TextBox text, ListBox searchlist, TextBox tlimit, int task)
        {
            searchlist.Items.Clear();
            int max = text.Text.Length;
            int limit;

            if (tlimit.Text != "")
            {
                limit = Convert.ToInt32(tlimit.Text);
            }
            else
            {
                limit = max;
            }

            //Результаты
            List <result> res = new List <result>();

            List <List <string> > str = subarraylist.GetDivSubArr(list, task);//Convert.ToInt32(thread.Text)

            searchlist.Items.Clear();
            Stopwatch stopWatch = new Stopwatch();
            TimeSpan  ts;

            stopWatch.Start();

            if (r1.IsChecked == true)
            {
                Task <result>[] tasks = new Task <result> [str.Count];
                for (int i = 0; i < str.Count; i++)
                {
                    tasks[i] = new Task <result>(
                        ArrayThreadTask,
                        new dataparallel()
                    {
                        tempList    = str[i],
                        dist        = limit,
                        ThreadNum   = i + 1,
                        wordPattern = text.Text,
                        func        = func
                    }
                        );

                    //Запуск потока
                    tasks[i].Start();
                }
                Task.WaitAll(tasks);

                //Объединение результатов
                for (int i = 0; i < str.Count; i++)
                {
                    if (tasks[i].Result.word != "")
                    {
                        searchlist.Items.Add(tasks[i].Result);
                    }
                }
            }
            else
            {
                Task <List <result> >[] tasks = new Task <List <result> > [str.Count];
                for (int i = 0; i < str.Count; i++)
                {
                    tasks[i] = new Task <List <result> >(
                        ArrayThreadTaskExample,
                        new dataparallel()
                    {
                        tempList    = str[i],
                        dist        = limit,
                        ThreadNum   = i + 1,
                        wordPattern = text.Text,
                        func        = func
                    }
                        );

                    //Запуск потока
                    tasks[i].Start();
                }
                Task.WaitAll(tasks);

                //Объединение результатов
                for (int i = 0; i < str.Count; i++)
                {
                    for (int j = 0; j < tasks[i].Result.Count; j++)
                    {
                        searchlist.Items.Add(tasks[i].Result[j]);
                    }
                }
            }


            stopWatch.Stop();
            ts = stopWatch.Elapsed;


            if (tlimit.Name == "DLevLimit")
            {
                timeserachdlev = ts.TotalMilliseconds;
            }
            else
            {
                timeserachlev = ts.TotalMilliseconds;
            }

            timelev.Content = ts.TotalMilliseconds + " мс";
        }
示例#12
0
        //distance IdistanceServices.GetById(int id)
        //{
        //    throw new NotImplementedException();
        //}


        public async Task UpdateAsync(distance obj)
        {
            _context.distance.Update(obj);
            await _context.SaveChangesAsync();
        }
示例#13
0
 GetHits(distance, Direction4Helpers.ToDir4(dir), deltaPosition);
示例#14
0
        public void AutoDeploy()
        {
            truckcnt = (ordercnt - 1) / orderspertruck + 1;
            double r              = 500;
            double theta          = 360 / truckcnt;
            int    orderstodeploy = ordercnt;

            if (truckcnt > 16)
            {
                MessageBox.Show("The Maximum Truck Count is 16.");
                return;
            }

            for (int i = 0; i < truckcnt; i++)
            {
                Truck truck = new Truck();
                truck.truckid     = i;
                truck.trucknumber = "truck" + Convert.ToString(i + 1);

                double x0 = r * Math.Cos(theta * i);
                double y0 = r * Math.Sin(theta * i);

                List <distance> distancelist = new List <distance>();
                for (int j = 0; j < ordercnt; j++)
                {
                    if (!isorderdeployed[j])
                    {
                        distance dis = new distance();
                        dis.orderid = j;
                        dis.dist    = (orderlist[j].lat - x0) * (orderlist[j].lat - x0) + (orderlist[j].lng - y0) * (orderlist[j].lng - y0);
                        distancelist.Add(dis);
                    }
                }

                // sort the distance list according to the dist

                for (int j = 0; j < orderstodeploy; j++)
                {
                    for (int k = j + 1; k < orderstodeploy; k++)
                    {
                        if (distancelist[j].dist > distancelist[k].dist)
                        {
                            distance dis = new distance();
                            dis = distancelist[j]; distancelist[j] = distancelist[k]; distancelist[k] = dis;
                        }
                    }
                }

                // take ordespertruck orders from the sorted result.

                int cnt = Math.Min(orderstodeploy, orderspertruck);
                for (int j = 0; j < cnt; j++)
                {
                    truck.AddOrder(distancelist[j].orderid, orderlist[distancelist[j].orderid].lat, orderlist[distancelist[j].orderid].lng);
                    orderlist[distancelist[j].orderid].truckid = i;
                    isorderdeployed[distancelist[j].orderid]   = true;
                    orderstodeploy--;
                }

                trucklist.Add(truck);
            }
        }