private MDF_Line CreateLine(MDF_ConnectLineModel linemodel)
        {
            if (canvasLine == null)
            {
                return(null);
            }

            if (LineSource == null)
            {
                return(null);
            }

            if (m_dicitem.Where(p => p.Key == linemodel.From).Count() == 0)
            {
                return(null);
            }

            if (m_dicitem.Where(p => p.Key == linemodel.To).Count() == 0)
            {
                return(null);
            }

            ConnectItem from = m_dicitem[linemodel.From];
            ConnectItem to   = m_dicitem[linemodel.To];

            if (from == null || to == null)
            {
                return(null);
            }

            if (LineCheck != null)
            {
                if (!LineCheck.AddLineCheck(from.DataContext as MDF_ConnectItemModel, to.DataContext as MDF_ConnectItemModel))
                {
                    return(null);
                }
            }

            //判断是否已存在,如果存在则执行创建线
            var v = canvasLine.Children.FirstOrDefault(p => ((p as MDF_Line).DataContext as MDF_ConnectLineModel).From == linemodel.From &&
                                                       ((p as MDF_Line).DataContext as MDF_ConnectLineModel).To == linemodel.To);

            if (v != null)
            {
                return(null);
            }

            MDF_Line line = new MDF_Line();

            line.SetBinding(MDF_Line.StyleProperty, new Binding()
            {
                Source = this, Path = new PropertyPath("LineStyle")
            });
            line.DataContext = linemodel;
            canvasLine.Children.Add(line);
            ComputeLineInfo(line);
            line.LineSelected += line_LineSelected;

            return(line);
        }
        /// <summary>
        /// 删除线
        /// </summary>
        /// <param name="model"></param>
        private void DeleteLine(MDF_ConnectLineModel model)
        {
            if (canvasLine == null)
            {
                return;
            }

            if (model == null)
            {
                return;
            }

            MDF_Line line = canvasLine.Children.FirstOrDefault(p => ((p as FrameworkElement).DataContext as MDF_ConnectLineModel) == model) as MDF_Line;

            if (line == null)
            {
                return;
            }

            if (LineCheck != null && !LineCheck.DeleckLine(model))
            {
                return;
            }

            line.LineSelected -= line_LineSelected;
            canvasLine.Children.Remove(line);

            LineSource.Remove(model);
        }
        public async Task <IHttpActionResult> PutLineCheck(int id, LineCheck lineCheck)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != lineCheck.Id)
            {
                return(BadRequest());
            }

            db.Entry(lineCheck).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!LineCheckExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IHttpActionResult> GetLineCheck(int id)
        {
            LineCheck lineCheck = await db.LineCheck.FindAsync(id);

            if (lineCheck == null)
            {
                return(NotFound());
            }

            return(Ok(lineCheck));
        }
        public async Task <IHttpActionResult> PostLineCheck(LineCheck lineCheck)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.LineCheck.Add(lineCheck);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = lineCheck.Id }, lineCheck));
        }
        public async Task <IHttpActionResult> DeleteLineCheck(int id)
        {
            LineCheck lineCheck = await db.LineCheck.FindAsync(id);

            if (lineCheck == null)
            {
                return(NotFound());
            }

            db.LineCheck.Remove(lineCheck);
            await db.SaveChangesAsync();

            return(Ok(lineCheck));
        }
Beispiel #7
0
 static bool CheckPoints(List <Point> points)
 {
     if (points.Count < 3)
     {
         return(true);
     }
     else
     {
         var check = new LineCheck(points[0], points[1]);
         foreach (var testPoint in points.Skip(2))
         {
             if (!check.IsPointOnLine(testPoint))
             {
                 return(false);
             }
         }
         return(true);
     }
 }
Beispiel #8
0
 public Form_Main()
 {
     InitializeComponent();
     lineChecker = new LineCheck(dataGridView_game, (int)numericUpDown_connectk.Value);
     startGame();
 }