//画出逻辑边界对应位置
        public void ShowLogicBorder()
        {
            DeskBackground.Opacity = 0.5;
            //画出边框
            for (int i = 0; i < 18; i++)
            {
                Line line1 = new Line();
                line1.Stroke          = System.Windows.Media.Brushes.Black;
                line1.StrokeThickness = 3;
                line1.X1 = UIConstant.Logic2AbsX(gameControl.Walls[i].X1) + Constant.Ball_Radius;
                line1.Y1 = UIConstant.Logic2AbsY(gameControl.Walls[i].Y1) + Constant.Ball_Radius;
                line1.X2 = UIConstant.Logic2AbsX(gameControl.Walls[i].X2) + Constant.Ball_Radius;
                line1.Y2 = UIConstant.Logic2AbsY(gameControl.Walls[i].Y2) + Constant.Ball_Radius;
                Desk.Children.Add(line1);
            }

            //画出洞口
            for (int i = 0; i < 6; i++)
            {
                Ellipse circle = new Ellipse();
                circle.Stroke          = System.Windows.Media.Brushes.Black;
                circle.StrokeThickness = 3;
                circle.Width           = 2 * gameControl.Holes[i].GetRadius();
                circle.Height          = 2 * gameControl.Holes[i].GetRadius();
                Canvas.SetLeft(circle, UIConstant.Logic2AbsX(gameControl.Holes[i].Position.X) + Constant.Ball_Radius - gameControl.Holes[i].GetRadius());
                Canvas.SetTop(circle, UIConstant.Logic2AbsY(gameControl.Holes[i].Position.Y) + Constant.Ball_Radius - gameControl.Holes[i].GetRadius());
                Desk.Children.Add(circle);
            }


            for (int i = 0; i < 12; i++)
            {
                Ellipse circle = new Ellipse();
                circle.Stroke          = System.Windows.Media.Brushes.Red;
                circle.StrokeThickness = 2;
                circle.Width           = 5;
                circle.Height          = 5;
                Canvas.SetLeft(circle, UIConstant.Logic2AbsX(gameControl.Corners[i].X) + Constant.Ball_Radius - 1);
                Canvas.SetTop(circle, UIConstant.Logic2AbsY(gameControl.Corners[i].Y) + Constant.Ball_Radius - 1);
                Desk.Children.Add(circle);
            }
        }
        //移动、摆球、球杆旋转
        private void Desk_MouseMove(object sender, MouseEventArgs e)
        {
            if (gameControl.currPlayer.club != club.GetBody())
            {
                club.SetBody(gameControl.currPlayer.club);
            }

            if (gameControl.status == Status.SetBallandWaitHit && !gameControl.setLock)
            {
                Point point = e.GetPosition((Canvas)sender);

                Vector2 logicPoint = UIConstant.PointTrans(point);

                //System.Console.Out.WriteLine("绝对坐标 X: " + point.X + " Y: " + point.Y);
                //System.Console.Out.WriteLine("逻辑坐标 X: " + logicPoint.X + " Y: " + logicPoint.Y);
                if (gameControl.TrySetBall(logicPoint))
                {
                    gameControl.SetBall(logicPoint);
                }
            }
            else if (gameControl.status == Status.WaitPlayerHit || (gameControl.status == Status.SetBallandWaitHit && gameControl.setLock))
            {//等待击球
                if (!gameControl.isXuLi)
                {
                    //球杆旋转
                    Point   point      = e.GetPosition((Canvas)sender);
                    Vector2 logicPoint = UIConstant.PointTrans(point);
                    club.RotateClub(logicPoint);
                }
            }


            //System.Console.Out.WriteLine(sender.GetType());

            //Point point = e.GetPosition((Canvas)sender);

            //System.Console.Out.WriteLine("当前坐标 X: "+point.X+" Y: "+point.Y);
        }