Как вычислить угол между двумя точками на плоскости?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TiG
Постоялец
Постоялец
 
Сообщения: 327
Зарегистрирован: 12.05.2003 (Пн) 12:34
Откуда: Ростов-на-Дону

Как вычислить угол между двумя точками на плоскости?

Сообщение TiG » 31.03.2005 (Чт) 13:57

Как вычислить угол между двумя точками на плоскости?
Все мои игрушки мама разметало ураганом...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 31.03.2005 (Чт) 14:06

Во-первых, уже было, во-вторых, две точки не определяют угол.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.03.2005 (Чт) 14:07

Никак, ввиду отсутствия такового.
Может, угол между линией, соединяющей две точки, и положительным направлением абсциссы?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

TiG
Постоялец
Постоялец
 
Сообщения: 327
Зарегистрирован: 12.05.2003 (Пн) 12:34
Откуда: Ростов-на-Дону

Сообщение TiG » 31.03.2005 (Чт) 14:32

Угу поленился написать, сорь.
Грег прально сказал:

Как вычислить угол между линией, соединяющей две точки, и положительным направлением абсциссы.
Все мои игрушки мама разметало ураганом...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 31.03.2005 (Чт) 14:36

TiG писал(а):Как вычислить угол между линией, соединяющей две точки, и положительным направлением абсциссы.
Элементарно... Сходить к директору школы и попросить его зачислить тебя в первый класс :cry: А там уже у одноклассников спросишь, они тебе подробно расскажут :)

TiG
Постоялец
Постоялец
 
Сообщения: 327
Зарегистрирован: 12.05.2003 (Пн) 12:34
Откуда: Ростов-на-Дону

Сообщение TiG » 31.03.2005 (Чт) 14:39

не дерзи...
я написал долбанную формулу, через арксинус который раскладывается на арктанген и имееем мнимый угол, но возможно есть гениальный вариант, который соответственно прост, этому и был посвящен вопрос.
Все мои игрушки мама разметало ураганом...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 31.03.2005 (Чт) 14:42

TiG А, так тебе так надо... Тогда приношу свои извинения, не понял вопроса :(

Qubicz
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 16.10.2004 (Сб) 20:21
Откуда: Санкт-Петербург

Сообщение Qubicz » 31.03.2005 (Чт) 14:47

Код: Выделить всё
Atn ((y2-y1)/(x2-x1))

?
угол в радианах

TiG
Постоялец
Постоялец
 
Сообщения: 327
Зарегистрирован: 12.05.2003 (Пн) 12:34
Откуда: Ростов-на-Дону

Сообщение TiG » 31.03.2005 (Чт) 14:53

2 Qubicz, сенк этого ответа я и ждал))) (градусах - умножить на pi/180 вроде как)
Все мои игрушки мама разметало ураганом...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 31.03.2005 (Чт) 14:57

TiG писал(а):(градусах - умножить на pi/180 вроде как)
умножить на 180/пи вроде как :lol: Все таки загляни к дирику :wink:

TiG
Постоялец
Постоялец
 
Сообщения: 327
Зарегистрирован: 12.05.2003 (Пн) 12:34
Откуда: Ростов-на-Дону

Сообщение TiG » 31.03.2005 (Чт) 15:08

2 vvs_adm совершенно верно, сенк
Все мои игрушки мама разметало ураганом...

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 03.04.2005 (Вс) 2:23

Код: Выделить всё
Private Function GetAngle(X0 As Double, Y0 As Double, X1 As Double, Y1 As Double) As Double
    Const RAD = 57.2957795130823
    If X0 <> X1 Then
        GetAngle = Atn((Y1 - Y0) / (X1 - X0)) * RAD + 90 * (Sgn(X1 - X0) + 1)
        If GetAngle < 0 Then GetAngle = 360 + GetAngle
    Else: GetAngle = 180 + Sgn(Y1 - Y0) * 90
    End If
End Function


Это работает! :D


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron