Определить угол между двумя прямыми

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vladimir!
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 19.09.2005 (Пн) 21:47
Откуда: Пермь

Определить угол между двумя прямыми

Сообщение Vladimir! » 12.12.2005 (Пн) 21:59

Как это можно сделать?
Программно, конечно

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 13.12.2005 (Вт) 3:24

Позор, позор... :?
Если прямые определять координатами двух точек:
Код: Выделить всё

Const pi As Single = 3.14159265358979
Const e As Single = 2.71828182845905
Function Ugol(x1 As Single, y1 As Single, _
   x2 As Single, y2 As Single, _
   x1t As Single, y1t As Single, _
   x2t As Single, y2t As Single) As Single
Dim u1 As Single, u2 As Single
u1 = Atn((y2 - y1) / (x2 - x1))
u2 = Atn((y2t - y1t) / (x2t - x1t))
Ugol = Abs(u2 - u1)
End Function

Если же её определять уравнением - коэффициентами k и b:
Код: Выделить всё

Const pi As Single = 3.14159265358979
Const e As Single = 2.71828182845905
Function Ugol(k As Single, b As Single, _
   kt As Single, bt As Single) As Single
Dim u1 As Single, u2 As Single
u1 = Atn(k)
u2 = Atn(kt)
Ugol = Abs(u2 - u1)
End Function

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 13.12.2005 (Вт) 3:54

Замечу, что вместо Atn лучше использовать:
Код: Выделить всё
Private Const SmallNumber As Double = 1E-70
Public Function Atn2(ByVal y As Double, ByVal x As Double) As Double
    If SmallNumber * Abs(y) < Abs(x) Then
        If x < 0 Then
            If y = 0 Then
                Atn2 = Pi()
            Else
                Atn2 = Atn(y / x) + Pi() * Sgn(y)
            End If
        Else
            Atn2 = Atn(y / x)
        End If
    Else
        Atn2 = Sgn(y) * Pi() / 2
    End If
End Function

т.к. могут возникнуть проблемы со знаками в некоторых четвертях.
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 13.12.2005 (Вт) 6:44

Меня одно удивляет, почему вопросы по математике 9ого класса идут в форуме по VB? Может пора организовать отдельный подфорум и там спрашивать как из двух чисел получить их сумму. Плюс еще надо отдельный форум "Дайте мне готовый код быстро!" чтобы можно было постить вопросы которые самому решать лень.

PS Я не злой, просто третья тема за последнее время на одну и ту же тему.

Vladimir!
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 19.09.2005 (Пн) 21:47
Откуда: Пермь

Сообщение Vladimir! » 13.12.2005 (Вт) 22:22

Ну дык... В общем, спасибо за ответы.
А по поводу математики девятого класса... Да я не программист вообще по образованию, а жуть как интересно и для дела полезно.
Извините, если вопрос показался Вам тупым...
И вообще, форум, насколько я понимаю, для того и существует, чтоб вопросы задавать. Тем более это раздел для начинающих.
КАКИЕ ПРОБЛЕМЫ?
[/b]

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.12.2005 (Ср) 8:18

Vladimir! писал(а):А по поводу математики девятого класса... Да я не программист вообще по образованию, а жуть как интересно и для дела полезно.

А причем тут программирование?
Чтобы грамотно писать, нужно быть профессором филологии и получить две Нобелевские премии?
Lasciate ogni speranza, voi ch'entrate.

Vladimir!
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 19.09.2005 (Пн) 21:47
Откуда: Пермь

Сообщение Vladimir! » 14.12.2005 (Ср) 20:44

alibek, я с тобой согласен, но и ты согласись, что для того, чтобы грамотно писать надо учиться. Или я не прав и знание vb6 - дар от рождения, впитанный с молоком матери? Если Вы такой талант и та информация, которую Вы вложили в 7099(!!!) собщений была заложена в Вас по умолчанию я Вам искренне завидую. А мне приходится учиться. И хорошо что у таких талантов, как Вы.
Поменьше бы только неистовых флудеров... (Толку от них никакого, а г...на не оберешься)
С уважением, Владимир

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 14.12.2005 (Ср) 20:57

Vladimir! писал(а):Поменьше бы только неистовых флудеров... (Толку от них никакого, а г...на не оберешься)
С уважением, Владимир


Я должен писать код для задачи решение которой писал два раза за две недели? Эти посты так трудно найти? Один из них между прочим еще даже на вторую страницу не ушел, да и поиск не отменяли.
http://bbs.vbstreets.ru/viewtopic.php?p=166275#166275
http://bbs.vbstreets.ru/viewtopic.php?p=6572776#6572776
Это не вопрос по програмированию, а по математике причем по школьной, и 9ого класса. Реализация алгоритма есть на форуме где-то в 5-7 экземплярах минимум править там кое что нужно, но это к вопросу о создании второго форума.

Без особого уважения, Rinin

PS К вопросу о моем спецстатусе: его я получил довольно давно, и по собственной инициативе, тогда я просто забросил VB и обитал только в разделах флуда.
Последний раз редактировалось GAGArin 15.12.2005 (Чт) 21:28, всего редактировалось 1 раз.

Vladimir!
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 19.09.2005 (Пн) 21:47
Откуда: Пермь

Сообщение Vladimir! » 14.12.2005 (Ср) 23:44

Спасибо. Прошу прощения, если кого-то обидел... Не хотел. Но насчет девятого класса... Короче, по этому поводу останусь при своем мнении. Там только транспортир :lol:

Vladimir!
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 19.09.2005 (Пн) 21:47
Откуда: Пермь

Сообщение Vladimir! » 14.12.2005 (Ср) 23:46

А насчет уважения - твои проблемы

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.12.2005 (Чт) 16:37

Сам ты транспортир! :twisted: Только что открыл учебник: там всё про это доходчиво для таких как ты написано!
Изображение

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

Сообщение GSerg » 15.12.2005 (Чт) 16:39

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

Vladimir!
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 19.09.2005 (Пн) 21:47
Откуда: Пермь

Сообщение Vladimir! » 15.12.2005 (Чт) 21:32

Тема закрыта


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

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

Сейчас этот форум просматривают: AhrefsBot, Majestic-12 [Bot] и гости: 9

    TopList  
cron