На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Нахождение дирекционного угла отрезка
    Доброго времени суток!

    Собственно, вопрос уже изначально решён, и спрашиваю только чтобы быть уверенным, что он решён оптимально.
    Есть отрезок AB и нужно найти его дирекционный угол (угол отклонения от оси y). Я делаю так:
    1. Нахожу точку C с координатами (A.x, B.y) - таким образом получаю 2 катета AC, BC.
    2. Вычисляю длины катетов и нахожу отношение BC к AC.
    3. Беру atan из этого отношения и перевожу его из радианов в градусы.

    Может есть какие-то более оптимальные способы?
      atan2(B.y - A.y, B.x - A.x) даст угол в диапазоне -Pi..Pi по отношению к оси X


      P.S. Часто само значение угла не требуется, достаточно найти компоненты направляющего вектора
        Чтобы получить угол от оси Y, надо просто поменять аргументы atan2. Если угол надо откладывать против часовой стрелки, придется также поменять знак.

        Подозреваю, тут что-то сходное с ориентированием на местности, поэтому угол и нужен.
          MBo, amk Спасибо! Кстати, мой способ был рабочим только наполовину - он не различал знак угла =)
          Да, задача почти для ориентирования на местности - а именно вычисление дирекционного угла дороги на GPS карте =)
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0251 ]   [ 15 queries used ]   [ Generated: 16.04.24, 15:26 GMT ]