Что вам проще. Рыть в нете или подойдите к геодезисту с которым выносили точки и пусть он вам покажет формулы на эти задачи что я говорил.
Как я понял Вы уже разобрались что такое дирекционный угол, и что измеряется он в градусах минутах(60) секундах(60), именно это обстоятельство и неудобно при ручном складывании и вычитании в поле, что часто может приводит к ошибкам. Согласитесь всю жизнь считая до 100, тут нужно до 60 считать. Вот это и имел ввиду Палыч А что такое румб, действительно проще спросить у геодезиста или где нибудь в нете с картинками посмотреть, так будет быстрее...
0xba0bab, чтобы обобщить: 1. прямая и обратная геодезические задачи 2. складывание и вычитание 0º 00' 00"; далее чуть-чуть сложнее: 3. перевод из 0º 00' 00" в 0º 00,000', 0,0000º и обратно; кто-то из пользователей писал о работе не градусами-минутами-секундами, а гонами, и их не надо обделять: 4. перевод из 0º 00' 00" в гоны и обратно; усложняем задачу: 5. вычисление высоты точки наведения, горизонтального проложения и превышения, по вертикальному углу, расстоянию и высотам инструмента и вешки. Можно добавить еще и графическое отображение для п.п. 1 и 5, возможность ведения лог-файла. Для какой ОС планируется все это писаться - симбиан? Не факт, что будет сильно востребовано, сейчас у многих есть кпк на основе win mobile, но если бы подобное появилось, и стабильно работало, то закинул бы в смарт на черный день.
Это понятно. Интересовало это. Ясно, поищем. Почти готово Тьфу ты... Это грады, а я думал еще чего упустил. Не для ОС, а для платформы javame Насколько понимаю, это фактически любой современный смартфон-телефон, исключая iPhone (хотя и под него есть фокусы поставить яву)
10 - градусов: 0,3456 - осталось 1 градус = 60 минут = 3600 секунд для минут: 0,3456*100/60=0,576: 57,6 минут для секунд: 0,6*100/60=1 секунда Тут вапче ничего сложного,может что-нить с тригонометрией связать?
0xba0bab, может вам взять любой бесплатный геодезический калькулятор(какие я видел были написаны в ёкселе, а другие скорее всего на делфи) декомпилировать его и переделать в java?
Оффтоп (Move your mouse to the spoiler area to reveal the content) 0.3456гр. переводим в минуты. 0.3456*60=20.736мин. 0.6мин. переводим в сек 0.6 *60=36 сек.
Думаю что румбы можно и опустить, вряд ли кто ими сейчас пользуется. Насколько я понимаю они были введены для облегчения подстановки данных в разные формулы и "портянки" и дальнейшего подсчета с помощью таблиц Брадиса и т.д. Поэтому отсутствие этого понятия в данной программе не сильно снизит функциональность ее, но уменьшит гемор создателю. Ну а насчет графического представления, это перебор, ведь мы вроде о МАЛЕНЬКОМ калькуляторе говорим.
Уважаемый ТехТоп! Вынужден вас огорчить. Процесс декомпиляции, как средство воссоздания алгоритма - неблагодарное занятие. Более того, ввиду того, что современные машины в подавляющем большинстве соответствуют "архитектуре фон Неймана" (в частности, программы и данные хранятся в одной памяти, и нельзя заранее однозначно сказать, где код, а где - данные) процесс компиляции строго говоря необратим. Даже вроде бы теорема на этот счет доказана. А что творит современный транслятор с исходным кодом при включенных опциях оптимизации - это просто сказка. Поэтому то лучший друг хакера - интерактивный дизассемблер. На сайте одного из лучших декомпиляторов в качестве примера приведён такой промежуточный код Код: int __fastcall sub_402838(int a1) { int vl; // edx@l int result; // eax@2 v1 = *(_DWORD *)(a1 + 1713); *(_DWORD *)(a1 + 1713) += 13; if ( *(_DWORD *)(a1 + 1713) < 260u ) result = *(_DWORD *)(a1 + 1709) + v1; else { *(_DWORD *)(a1 + 29) = 17; (*(int (__fastcall **)(signed int))(a1 + 1717))(17); result = 0; } return result; } Тот кто с лёта понимает этот код - прирождённый хакер. Для того чтоб немного прочувствовать вышесказанное, попробуйте на более лёгком примере догадаться, что делают эти две весьма полезные, на мой взгляд, экселевские формулы (во второй строчке есть намёк) Код: =(A1*50-32*ОТБР(A1)-ОТБР((A1-ОТБР(A1))*100)/5)/18 =(9*B1+16*ОТБР(B1)+ОТБР(60*(B1-ОТБР(B1)))/10)*0.04
Оффтоп (Move your mouse to the spoiler area to reveal the content) stout, сам то я в программировании не силён, но надеялся на образование программиста у топикстартера. Раз это так сложно, то почему все производители ПО запрещают проделывать такие операции со своим софтом? Насчет xls я в тупике
А чё тут думать, если есть гугл. http://www.navgeocom.ru/forum/index.php?showtopic=1290&pid=8910&start=&st=#entry8910
Ну, то что они пишут в своих лицензионных соглашениях - это их хотелки. Бумага все стерпит. Главное - что говорит Закон. ГРАЖДАНСКИЙ КОДЕКС РОССИЙСКОЙ ФЕДЕРАЦИИ. ЧАСТЬ ЧЕТВЕРТАЯ (действует с 01.01.2008г.) (Наведите курсор, чтобы раскрыть содержимое) ГРАЖДАНСКИЙ КОДЕКС РОССИЙСКОЙ ФЕДЕРАЦИИ. ЧАСТЬ ЧЕТВЕРТАЯ (действует с 01.01.2008г.) (раскрыть) ГРАЖДАНСКИЙ КОДЕКС РОССИЙСКОЙ ФЕДЕРАЦИИ. ЧАСТЬ ЧЕТВЕРТАЯ (действует с 01.01.2008г.) (свернуть) Раздел VII. ПРАВА НА РЕЗУЛЬТАТЫ ИНТЕЛЛЕКТУАЛЬНОЙ ДЕЯТЕЛЬНОСТИ И СРЕДСТВА ИНДИВИДУАЛИЗАЦИИ Глава 69. ОБЩИЕ ПОЛОЖЕНИЯ Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ 1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения: 1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем; 2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным. 2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать или испытывать функционирование такой программы в целях определения идей и принципов, лежащих в основе любого элемента программы для ЭВМ, путем осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи. 3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий: 1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников; 2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию; 3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления другого действия, нарушающего исключительное право на программу для ЭВМ. 4. Применение положений, предусмотренных настоящей статьей, не должно наносить неоправданный ущерб нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя. А до этого момента действовали ещё более мягкие для конечного пользователя правила. 2 Hmep Хотел, хотел буковки подправить, знал же что найдётся ленивый - но поленился.
Здравствуйте, Александр Юрьевич! Не мог пройти мимо поста, где затрагивается Excel. В приведенных Вами формулах, с трудом угадываются (по- видимому так было и задумано) формулы перевода из градусной системы счета в десятичную, и обратно. Для меня так и остался непонятным этот «шаманский танец с бубнами»: имею в виду ряд непонятных мне констант. Или это всего лишь иллюстрация к топику? В «классическом» Excel то же самое решается в два раза короче и прозрачнее: =ОТБР(A1)+(A1-ОТБР(A1))*100/60 ОТБР(B1)+(B1-ОТБР(B1))*0.6 С уважением, Александр.
Честно скажу, когда писал, то очень надеялся, что не пройдёте мимо Вы абсолютно правы, это "формулы перевода из градусной системы счета в десятичную, и обратно". Единственное но. Они преобразуют градусы, минуты и секунды с их долями (формат - dd.mmsssss…) в градусы и доли градуса dd.dddd… Ну, и обратно. История написания этих "магических" строчек относится к далёким 80-ым, когда у меня появилось такое чудо У Casio FX-502P было 256 шагов для 10 подпрограмм и 22 ячейки памяти, каждая была на счету. И очень важно было записать алгоритм так, чтобы не использовать дополнительные ячейки и уменьшить число шагов. Поэтому, например, число 100 записывалось как | 2; 10^x | - всего 2 шага, а не 3, как при обычной записи. Чуть переработав библиотечную подпрограмму, удалось сократить её размер на 3 шага. Потом это код благополучно перекочевал в ФОРТРАН-программы, где было понятие строки-функции. Кстати, лирически-настольгическое воздыхание. С развалом СССР на 1/6 суши умер Фортран. Во всем мире он живёт и здравствует, принят стандарт Fortran 2003, готовится принятие стандарта 2008 года, Intel с завидной регулярностью обновляет свой Intel Fortran Compiler, который генерирует наиболее быстрый код для своих же процессоров. Такие программы постобработки, как BERNESE, GAMIT, написаны, в основном, на фортране. Библиотека (довольно свежая, в смысле появления первых версий) SOFA - Standards of Fundamental Astronomy первоначально написана на фортране. И только у нас днём с огнём не найдёшь человека, который признается, что пишет на фортране. А цель приведения этих строчек - показать, что даже хорошо известные алгоритмы могут быть записаны (вынуждено) так, что и не сразу догадаешься, что они делают. Достаточно давно набрёл на сайт, содержащий Matrix and Linear Algebra functions for EXCEL, но всё руки никак не доходят пощупать… Может быть выскажите своё компетентное мнение?
stout,Sh_Alex В данных формулах заложена ошибка, или я что-то не то делаю? Рассмотрим такой пример: мы имеем 231гр. 42мин. 54сек. переведем эти цифры в доли градусов по вашей формуле. 231+(231,4254-231)*100/60=231,709гр. Теперь самое интересное. переведем доли градуса обратно, воспользуемся 2-мя способами. 1-й это ваши формулы, 2-й старый дедовский способ *60. 1-й: 231+(231,709-231)*0,6=231,4254, т.е. 231гр. 42мин. 54сек. 2-й: ОТБР(A1)= гр. (А1-ОТБР(A1))*60= мин. ((А1-ОТБР(A1))*60-ОТБР((А1-ОТБР(A1))*60))*60= сек. 231гр. (231,709-231)*60= 42,54мин. ((231,709-231)*60-ОТБР(231,709-231)*60)*60=32,4сек. т.е. в итоге получаем 231гр. 42мин. 32,4сек. это никак не равно нашему исходному значению. где-же потеряли 22 сек?
Вы пытаетесь применить формулы для перевода градусов и минут с их долями в градусы и доли градуса, т.е. dd.mmmmmmm… в dd.dddddddd… для перевода градусов, минут и секунд с долями, т.е. dd.mmssssssssss… в dd.dddddddd. Конечно, будет ошибка. Попробуйте по тем "хитровывернутым" формулам что я приводил - должно всё получиться. Ну и так, на всякий случай, 124°5'3.127" записывается как 124.0503127
Теперь все получается как надо. А то ввели в заблуждение, сначала потом А оказывается одни формулы для одного, другие для другого.