Как узнать угол между точкой и координатами курсора

Различные математические алгоритмы.
Ivan76
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 12.08.2010 (Чт) 15:29

Как узнать угол между точкой и координатами курсора

Сообщение Ivan76 » 23.08.2010 (Пн) 6:55

Как узнать угол (в радианах) между точкой расположенной на экране и координатами курсора мыши.
Придумал функцию но она не всегда работает, может где ошибка?

Код: Выделить всё
Private Function Angl() As Single
        Dim M, O As Point
        Dim X, Y, Z As Integer
        Dim C As Single
        O = New Point(Player.Location.X, Player.Location.Y)
        M = New Point(Control.MousePosition.X, Control.MousePosition.Y)

        X = M.X - O.X
        Y = M.Y - O.Y
        Z = Math.Sqrt(X ^ 2 + Y ^ 2)

        If M.X >= O.Y And M.Y <= O.Y Then
            C = 0
            Angl = C - Math.Abs(Math.Asin(Y / Z))
        ElseIf M.X <= O.X And M.Y <= O.Y Then
            C = Math.PI
            Angl = C - Math.Asin(Y / Z)
        ElseIf M.X <= O.X And M.Y >= O.Y Then
            C = Math.PI
            Angl = C - Math.Asin(Y / Z)
        ElseIf M.X >= O.X And M.Y >= O.Y Then
            C = 0
            Angl = C + Math.Abs(Math.Asin(Y / Z))
        End If

    End Function


Player.Location.X и Player.Location.Y Это координаты точки.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как узнать угол между точкой и координатами курсора

Сообщение Хакер » 23.08.2010 (Пн) 8:22

1) Тема не имеет никакого отношения к графике. Переносится в раздел «Математика», хотя и алгоритмичности в ней почти никакой.
2) Не бывает угла между двумя точками. Бывает угол между двумя прямыми. Определись с прямыми, угол между которыми ты ищешь.
3) Определись, какой угол нужно находить: «кратчайший» или отсчитываемый по определённому направлению.
4) Используй арктангенс и не вычисляй лишнего.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Математика

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList