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

      Тогда по теореме синусов имеем: x/sin(φ) = r/sin© = r/sin(π-α-φ) = r/sin(α+φ)
      Отсюда находим желанный x: x = sin(φ)*r/sin(α+φ).
      И потом (обратным преобразованием) найдём искомую точку.
      П.С. при столь малых расстояних (не более 2 км), думаю, радиусом следует пренебречь.

      Добавлено
      :wall: Вот дьявол, какой-то форумный парсер преобразовал C в скобках в копирайтовский значок. Чёрт!
      А было там: r/sin( C )
        Здесь, раздел Intersection of two paths given start points and bearings
          Славян, с решением треугольника все понятно. Но у меня больше вопросов вызывают системы координат. По какому алгоритму и формулам мне получить координаты (градусы, минуты, секунды). Можно ли сразу перевести расстояния в градусы? Может по азимуту считать. Би полярные, полярные, прямоугольный координаты использовать? У меня ещё была идея сетку положить на зону, что бы алгоритм сравнивал расстояния от известных точек с каждой координатор сетки.?
            Да делайте всё просто пошагово, по этапам; не нужно пытаться получить готовые формулы сразу.
            1. Пусть сначала т. А будет на экваторе, на нулевом меридиане, а т. B - в северном полушарии. Тогда по цилиндрическим координатам можно найти искомую т. C.
            2. Далее просто поверните Землю на нужный меридиан-долготу.
            3. Теперь пусть А позволено будет быть чуть севернее экватора (но вдалеке от полюса). И тут порешайте всё.
            Наконец, оставшиеся варианты закончат всю вашу формулу (набор формул)! ;)

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


                Рейтинг@Mail.ru
                [ Script execution time: 0,0475 ]   [ 17 queries used ]   [ Generated: 19.03.24, 07:39 GMT ]