Немного геометрии

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Немного геометрии

Сообщение StimorolD3DX » 23.06.2007 (Сб) 16:25

Вообщем есть 2 точки А и В на плоскости. Их координаты известны. Вопрос: Как узнать угол между ними? Какую формулу использовать?

Может кто не понял суть вопроса вот аттачу картинку.
Вложения
Sample.jpg
Sample.jpg (6.88 Кб) Просмотров: 86

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 23.06.2007 (Сб) 16:38

StimorolD3DX
Atn((x1-x2)/(y1-y2))
С учетом того, что на 0 делить нельзя и функция Atn определена не на всей числовой оси, то есть сделай соответствующий Select Case.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 23.06.2007 (Сб) 16:59

Код: Выделить всё
Public Const pi As Double = 3.14159265358979

Function RTG(Rad As Double) As Double
    RTG = (180 * Rad) / pi
End Function

Function GTR(Grd As Double) As Double
    GTR = (Grd * pi) / 180
End Function

Function XAngle(x1 As Long, y1 As Long, x2 As Long, y2 As Long) As Double
Dim tn As Double
    If x2 - x1 = 0 Then XAngle = IIf(y2 < y1, 0, 180): Exit Function
    tn = -(y1 - y2) / (x2 - x1)
    XAngle = RTG(Atn(tn)) + 90
    If x2 < x1 Then XAngle = XAngle + 180
End Function
label:
cli
jmp label

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 23.06.2007 (Сб) 21:20

Спасибо всем


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

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

Сейчас этот форум просматривают: Google-бот и гости: 85

    TopList