anonymous@RULINUX.NET~# Last login: 2024-12-29 12:20:08
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

поспорили тут про вычисление высоты самолета на гуглемапсе

есть два варианта решения, но сначала что и как и где считается:

вот фотка самолёта  http://wikimapia.org/#lat=56.1651248&lon=37.8676629&z=16&l=1&m=b

тень от самолёта в 533 метрах чуть левее. там где на карте написано "СНТ Импульс" (чтобы убрать название надо один раз нажать + на карте, тогда название "СНТ Импульс" исчезнет и будет более менее видна тень)

1) собственное мое решение

зная длину тени от деревьев(там по ссылке есть в левом углу измеритель расстояния, линеечка такая желтая между двумя точками) и среднюю высоту деревьев (я брал 15 метров) можно узнать через треугольник угол, под которым солнце дает тень дерева ( следовательно и от самолета ). Зная этот угол и зная расстояние между самолетом и его тенью можно узнать высоту, на которой летел этот самолет, у мну получилось вот что

[vilfred@observ ~]$ perl -e 'print 533*sin(atan2(15,9))," метров\n";'

457.043729404786 метров

[vilfred@observ ~]$

где 457.043729404786 высота, на которой самолет летит, наверное +- 100 или 200 метров...

2) и другое решение

Откуда sin?

Отношение высоты к расстоянию до тени равна тому же отношению для деревьев.

то есть (533 / 9) * 15 = 888 метров.

[ss ~]$ perl -e 'print "888 метров\n";'

888 метров

[ss ~]$

собственно что заинтересовало, а разве тут можно использовать линейную пропорцию? тут ведь в треугольнике длина катета определяется не подобием, а величиной угла, который выразить можно только через синусы, косинусы всякие. Этож не задача вида "1 человек за 1 час напечет 50 блинов. Сколько блинов за час напекут 2 человека?".

либо я феерически туплю

vilfred(*) (2011-06-01 21:20:00)

Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0

[Ответить на это сообщение]
avatar
Скрыть

Re: поспорили тут про вычисление высоты самолета на гуглемапсе

>собственно что заинтересовало, а разве тут можно использовать линейную пропорцию?

можно. man тангенс.

>>Откуда sin?

присоеденяюсь к вопросу. нахрена тебе гипотенуза?

>perl -e 'print 533*sin(atan2(15,9))," метров\n";'

вилли, жжошь. ты получаешь синус верхнего угла, и зачем-то находишь длину тени, приняв гипотенузу за 533)))

anonymous(*)(2011-06-01 21:46:29)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.16) Gecko/2009120206 Firefox/3.0.16
avatar
Скрыть

Re: поспорили тут про вычисление высоты самолета на гуглемапсе

533 это катет(если ты понял как это цифра получилась нажав на линейку в викимапсе и узнав длину от самолёта до тени, я её получал именно так, протягивая мышкой квадратики на жабаскриптовом интрфейсе)

я не понял в чем расчет через треугольники и тригонометрию отличается от расчета через пропорции, причём в два раза

vilfred(*)(2011-06-01 21:50:58)

Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
avatar
Скрыть

Re: поспорили тут про вычисление высоты самолета на гуглемапсе

у меня задача решается в два шага.

1) сначала я беру эту линейку, вычисляю расстояние от основания дерева до конца его тени. Этот катет равен 9 метрам(ну я взял там какую-то тень на карте). Потом я беру среднюю высоту дерева, которую положил 15 метрам, эта средняя высота дерева противолежит углу, который я вычисляю. Итого у мну есть два катета в прямоугольном треугольнике. Ну а тангенс это отношение противолежащего к углу катета к прилежащему. Т.е. тангенс отношения высоты дерева к длине его тени. Отсюда через арктангенс(атан2 в перле) я получаю сам угол в радианах.

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

пока объяснение писал разобрался. и правда. итить, позор какой

vilfred(*)(2011-06-01 22:08:15)

Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
avatar
Скрыть

Re: поспорили тут про вычисление высоты самолета на гуглемапсе

>Этот катет равен 9 метрам(ну я взял там какую-то тень на карте).
Там тени от деревьев настолько разные, что ошибка будет очень значительная. Я вот взял пятиметровую тень, например.

SystemV(*)(2011-06-01 22:15:12)

Emacs-w3m/1.4.414 w3m/0.5.3
avatar
Скрыть

Re: поспорили тут про вычисление высоты самолета на гуглемапсе

>533 это катет(если ты понял как это цифра получилась нажав на линейку в викимапсе и узнав длину от самолёта до тени, я её получал именно так, протягивая мышкой квадратики на жабаскриптовом интрфейсе)

в том то и дело, что это катет, а в твоем расчете длинна 533 фигурирует как гипотенуза)))

>я не понял в чем расчет через треугольники и тригонометрию отличается от расчета через пропорции, причём в два раза

конечно. расчет через треугольник же неправильный. давай разберем поподробнее что у тебя там происходит:

    наш треугольник:
  1.  A
  2.  |\
  3.  B-C

как мы помним из геометрии, тангенс -- это отношение противолежащего катета к прилежащему. т.е. "atan2(15,9)" вернет нам величину угла С. пока вроде все нормально. но теперь вилли делает синус этого угла! а что такое синус? а это отношение противолежащего катета к гипотенузе, т.е. sin(С) = АB/AС (1) -> АB = AС*sin(С) (2). тут мы опять смотрим на то что написал вилли: "533*sin(atan2(15,9))" и находим поразтельное сходство с формулой 2! т.е. это формула возвращает нам AB(тут я извиняюсь за ошибку в предыдущем посте, искал ты действительно высоту, а не тень), пологая что AC у нас равно 533.

теперь давай давай вместе подумаем, что же надо сделать, чтобы формула стала правильной? раз у нас есть угол B, то нам, внезапно именно тангенс и нужен, ибо tg(С) = AB/ВC (3) -> AB = ВС*tg(С) (4). что на языке перла запишется как "533*tan(atan2(15,9))" и, внезапно, вернет именно 888.3335.

но зачем нам арктангенс, если мы тут же делаем тангенс? зачем нам эти лишнии действия? ведь tg(arctg(x)) = x (5)! вот потому то тут и катят соотношения.

anonymous(*)(2011-06-01 22:36:53)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.16) Gecko/2009120206 Firefox/3.0.16
avatar
Скрыть

Re: поспорили тут про вычисление высоты самолета на гуглемапсе

> ведь tg(arctg(x)) = x (5)! вот потому то тут и катят соотношения.

мну согласный.

vilfred(*)(2011-06-02 10:25:30)

Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!