使用设置的长度创建跟随光标的行

时间:2016-01-22 01:39:43

标签: vb.net vector cursor angle

我正在尝试用固定的x1 / y1创建一条线,当用户移动光标时,它的另一端会移动到光标。 “大炮”就是这条线。当我尝试使用它时,该行确实跟随光标,但它有一个很大的偏移并被反转。我不确定它有什么问题,但它可能非常明显。

devise_for :users, controllers: {
      sessions: 'users/sessions'
}
resources :users

1 个答案:

答案 0 :(得分:0)

我怀疑Cursor.Position给出了相对于显示器左上角的鼠标坐标 - 就像MousePosition一样。试试这个..

PointToClient是一个计算鼠标相对于程序窗口位置的函数。

Dim angle as Double = Math.Atan(Math.Abs(Me.PointToClient(MousePosition).Y - cannon.Y1) / Math.Abs(Me.PointToClient(MousePosition).X- cannon.X1))

Dim h As Double = Math.Sqrt((Math.Abs(Me.PointToClient(MousePosition).X - cannon.X1) ^ 2) + Math.Abs(Me.PointToClient(MousePosition).Y - cannon.Y1) ^ 2)
Dim a As Double = h * Math.Cos(angle)
Dim o As Double = h * Math.Sin(angle)

cannon.X2 = cannon.X1 + a
cannon.Y2 = cannon.Y1 - o