Exemplo n.º 1
0
        public void MoveObject(UiElement l1, UiElement l2)
        {
            if (l1.Points.Count == l2.Points.Count)
            {
                Timer T     = new Timer(1);
                var   delta = 0.1f;

                T.Elapsed += (sender, args) =>
                {
                    T.Enabled = false;
                    for (int i = 0; i < l1.Points.Count; i++)
                    {
                        var point = l1.Points[i];
                        point.X += (l2.Points[i].X - l1.Points[i].X) * delta;
                        point.Y += (l2.Points[i].Y - l1.Points[i].Y) * delta;

                        if (point.X > delta && point.Y > delta)
                        {
                            l1.Points[i] = point;
                        }
                    }

                    _g.Clear(Color.White);
                    Draw(l1);
                    T.Enabled = true;

                    if (Math.Abs(l2.Points[0].X - l1.Points[0].X) < delta)
                    {
                        T.Stop();
                    }
                };
                T.Start();
            }
            else
            {
                throw new Exception("Объекты должны содержать одинаковое количество точек");
            }
        }
Exemplo n.º 2
0
 public void Draw(UiElement element)
 {
     element.Draw(DrawType, _bmp);
     _field.Image = _bmp;
 }