Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Программы по геодезии на java

Тема в разделе "Другие программы", создана пользователем 0xba0bab, 5 июл 2010.

  1. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Что вам проще. Рыть в нете или подойдите к геодезисту с которым выносили точки и пусть он вам покажет формулы на эти задачи что я говорил.
     
    #21
  2. GeoDemon

    Форумчанин

    Регистрация:
    4 ноя 2009
    Сообщения:
    383
    Симпатии:
    10
    Адрес:
    Мурманская обл., г. Мончегорск
    Как я понял Вы уже разобрались что такое дирекционный угол, и что измеряется он в градусах минутах(60) секундах(60), именно это обстоятельство и неудобно при ручном складывании и вычитании в поле, что часто может приводит к ошибкам. Согласитесь всю жизнь считая до 100, тут нужно до 60 считать. Вот это и имел ввиду Палыч
    А что такое румб, действительно проще спросить у геодезиста или где нибудь в нете с картинками посмотреть, так будет быстрее...
     
    #22
  3. A_72

    Форумчанин

    Регистрация:
    11 июл 2008
    Сообщения:
    251
    Симпатии:
    79
    Адрес:
    Samara
    0xba0bab, чтобы обобщить:
    1. прямая и обратная геодезические задачи
    2. складывание и вычитание 0º 00' 00";

    далее чуть-чуть сложнее:
    3. перевод из 0º 00' 00" в 0º 00,000', 0,0000º и обратно;

    кто-то из пользователей писал о работе не градусами-минутами-секундами, а гонами, и их не надо обделять:
    4. перевод из 0º 00' 00" в гоны и обратно;

    усложняем задачу:
    5. вычисление высоты точки наведения, горизонтального проложения и превышения, по вертикальному углу, расстоянию и высотам инструмента и вешки.

    Можно добавить еще и графическое отображение для п.п. 1 и 5, возможность ведения лог-файла.

    Для какой ОС планируется все это писаться - симбиан?

    Не факт, что будет сильно востребовано, сейчас у многих есть кпк на основе win mobile, но если бы подобное появилось, и стабильно работало, то закинул бы в смарт на черный день.
     
    #23
  4. 0xba0bab

    0xba0bab Только чтение

    Это понятно.
    Интересовало это. Ясно, поищем.
    Почти готово ::biggrin24.gif::
    Тьфу ты... Это грады, а я думал еще чего упустил.
    Не для ОС, а для платформы javame ::smile24.gif::
    Насколько понимаю, это фактически любой современный смартфон-телефон, исключая iPhone (хотя и под него есть фокусы поставить яву)
     
    #24
  5. alexkrong

    Форумчанин

    Регистрация:
    17 янв 2009
    Сообщения:
    1.086
    Симпатии:
    380
    Адрес:
    Ставрополь-Н.Уренгой
    10 - градусов: 0,3456 - осталось
    1 градус = 60 минут = 3600 секунд
    для минут: 0,3456*100/60=0,576: 57,6 минут
    для секунд: 0,6*100/60=1 секунда

    Тут вапче ничего сложного,может что-нить с тригонометрией связать?
     
    #25
  6. 0xba0bab

    0xba0bab Только чтение

    Спасибо, десятичные доли в минуты умею со школы переводить.
    alexkrong, пока достаточно :)
     
    #26
  7. geokm

    Форумчанин

    Регистрация:
    27 фев 2010
    Сообщения:
    659
    Симпатии:
    22
    Адрес:
    Москва
    Если это переход с минут в секунды то неправильно переводите
     
    #27
  8. ТехТоп

    ТехТоп Алексей
    Команда форума Форумчанин

    Регистрация:
    14 июл 2007
    Сообщения:
    7.323
    Симпатии:
    2.816
    Адрес:
    Город 54, Сибирь
    0xba0bab, может вам взять любой бесплатный геодезический калькулятор(какие я видел были написаны в ёкселе, а другие скорее всего на делфи) декомпилировать его и переделать в java?
     
    #28
  9. alexkrong

    Форумчанин

    Регистрация:
    17 янв 2009
    Сообщения:
    1.086
    Симпатии:
    380
    Адрес:
    Ставрополь-Н.Уренгой
    Оффтоп

    Поясните...
     
    #29
  10. geokm

    Форумчанин

    Регистрация:
    27 фев 2010
    Сообщения:
    659
    Симпатии:
    22
    Адрес:
    Москва
    Оффтоп
    0.3456гр. переводим в минуты. 0.3456*60=20.736мин.
    0.6мин. переводим в сек 0.6 *60=36 сек.
     
    #30
  11. GeoDemon

    Форумчанин

    Регистрация:
    4 ноя 2009
    Сообщения:
    383
    Симпатии:
    10
    Адрес:
    Мурманская обл., г. Мончегорск
    Думаю что румбы можно и опустить, вряд ли кто ими сейчас пользуется. Насколько я понимаю они были введены для облегчения подстановки данных в разные формулы и "портянки" и дальнейшего подсчета с помощью таблиц Брадиса и т.д. Поэтому отсутствие этого понятия в данной программе не сильно снизит функциональность ее, но уменьшит гемор создателю. Ну а насчет графического представления, это перебор, ведь мы вроде о МАЛЕНЬКОМ калькуляторе говорим.
     
    #31
  12. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    Уважаемый ТехТоп! Вынужден вас огорчить. Процесс декомпиляции, как средство воссоздания алгоритма - неблагодарное занятие. Более того, ввиду того, что современные машины в подавляющем большинстве соответствуют "архитектуре фон Неймана" (в частности, программы и данные хранятся в одной памяти, и нельзя заранее однозначно сказать, где код, а где - данные) процесс компиляции строго говоря необратим. Даже вроде бы теорема на этот счет доказана. А что творит современный транслятор с исходным кодом при включенных опциях оптимизации - это просто сказка. Поэтому то лучший друг хакера - интерактивный дизассемблер.
    На сайте одного из лучших декомпиляторов в качестве примера приведён такой промежуточный код
    Код:
    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;
    }
    Тот кто с лёта понимает этот код - прирождённый хакер. ::biggrin24.gif::

    Для того чтоб немного прочувствовать вышесказанное, попробуйте на более лёгком примере догадаться, что делают эти две весьма полезные, на мой взгляд, экселевские формулы (во второй строчке есть намёк)
    Код:
    =(A1*50-32*ОТБР(A1)-ОТБР((A1-ОТБР(A1))*100)/5)/18
    =(9*B1+16*ОТБР(B1)+ОТБР(60*(B1-ОТБР(B1)))/10)*0.04
    ::wink24.gif::
     
    #32
  13. ТехТоп

    ТехТоп Алексей
    Команда форума Форумчанин

    Регистрация:
    14 июл 2007
    Сообщения:
    7.323
    Симпатии:
    2.816
    Адрес:
    Город 54, Сибирь
    Оффтоп
    stout, сам то я в программировании не силён, но надеялся на образование программиста у топикстартера. Раз это так сложно, то почему все производители ПО запрещают проделывать такие операции со своим софтом? Насчет xls я в тупике ::-ph34r.gif::
     
    #33
  14. Hmep

    Форумчанин

    Регистрация:
    15 окт 2008
    Сообщения:
    747
    Симпатии:
    23
    Адрес:
    Краснолесье
  15. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    Ну, то что они пишут в своих лицензионных соглашениях - это их хотелки. Бумага все стерпит. Главное - что говорит Закон.
    ГРАЖДАНСКИЙ КОДЕКС РОССИЙСКОЙ ФЕДЕРАЦИИ. ЧАСТЬ ЧЕТВЕРТАЯ (действует с 01.01.2008г.) (раскрыть)

    Раздел VII. ПРАВА НА РЕЗУЛЬТАТЫ ИНТЕЛЛЕКТУАЛЬНОЙ

    ДЕЯТЕЛЬНОСТИ И СРЕДСТВА ИНДИВИДУАЛИЗАЦИИ

    Глава 69. ОБЩИЕ ПОЛОЖЕНИЯ

    Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ

    1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:

    1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;

    2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным.

    2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать или испытывать функционирование такой программы в целях определения идей и принципов, лежащих в основе любого элемента программы для ЭВМ, путем осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи.

    3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий:

    1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников;

    2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию;

    3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления другого действия, нарушающего исключительное право на программу для ЭВМ.

    4. Применение положений, предусмотренных настоящей статьей, не должно наносить неоправданный ущерб нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя.

    А до этого момента действовали ещё более мягкие для конечного пользователя правила.

    2 Hmep
    Хотел, хотел буковки подправить, знал же что найдётся ленивый - но поленился. ::biggrin24.gif::
     
    #35
  16. Sh_Alex

    Форумчанин

    Регистрация:
    1 май 2007
    Сообщения:
    641
    Симпатии:
    72
    Адрес:
    Санкт-Петербург
    Здравствуйте, Александр Юрьевич!
    Не мог пройти мимо поста, где затрагивается Excel.
    В приведенных Вами формулах, с трудом угадываются (по- видимому так было и задумано) формулы перевода из градусной системы счета в десятичную, и обратно. Для меня так и остался непонятным этот «шаманский танец с бубнами»: имею в виду ряд непонятных мне констант. Или это всего лишь иллюстрация к топику?
    В «классическом» Excel то же самое решается в два раза короче и прозрачнее:
    =ОТБР(A1)+(A1-ОТБР(A1))*100/60
    ОТБР(B1)+(B1-ОТБР(B1))*0.6
    С уважением, Александр.
     
    #36
  17. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    Честно скажу, когда писал, то очень надеялся, что не пройдёте мимо ::smile24.gif::
    Вы абсолютно правы, это "формулы перевода из градусной системы счета в десятичную, и обратно".
    Единственное но. Они преобразуют градусы, минуты и секунды с их долями (формат - dd.mmsssss…) в градусы и доли градуса dd.dddd… Ну, и обратно.
    История написания этих "магических" строчек относится к далёким 80-ым, когда у меня появилось такое чудо [​IMG]
    У Casio FX-502P было 256 шагов для 10 подпрограмм и 22 ячейки памяти, каждая была на счету. И очень важно было записать алгоритм так, чтобы не использовать дополнительные ячейки и уменьшить число шагов. Поэтому, например, число 100 записывалось как | 2; 10^x | - всего 2 шага, а не 3, как при обычной записи. Чуть переработав библиотечную подпрограмму, удалось сократить её размер на 3 шага. ::biggrin24.gif::
    Потом это код благополучно перекочевал в ФОРТРАН-программы, где было понятие строки-функции.
    Кстати, лирически-настольгическое воздыхание. С развалом СССР на 1/6 суши умер Фортран. Во всем мире он живёт и здравствует, принят стандарт Fortran 2003, готовится принятие стандарта 2008 года, Intel с завидной регулярностью обновляет свой Intel Fortran Compiler, который генерирует наиболее быстрый код для своих же процессоров. Такие программы постобработки, как BERNESE, GAMIT, написаны, в основном, на фортране. Библиотека (довольно свежая, в смысле появления первых версий) SOFA - Standards of Fundamental Astronomy первоначально написана на фортране. И только у нас днём с огнём не найдёшь человека, который признается, что пишет на фортране.
    А цель приведения этих строчек - показать, что даже хорошо известные алгоритмы могут быть записаны (вынуждено) так, что и не сразу догадаешься, что они делают.
    Достаточно давно набрёл на сайт, содержащий Matrix and Linear Algebra functions for EXCEL, но всё руки никак не доходят пощупать… ::sad24.gif::
    Может быть выскажите своё компетентное мнение?
     
    #37
  18. geokm

    Форумчанин

    Регистрация:
    27 фев 2010
    Сообщения:
    659
    Симпатии:
    22
    Адрес:
    Москва
    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 сек?
     
    #38
  19. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    Вы пытаетесь применить формулы для перевода градусов и минут с их долями в градусы и доли градуса, т.е. dd.mmmmmmm… в dd.dddddddd… для перевода градусов, минут и секунд с долями, т.е. dd.mmssssssssss… в dd.dddddddd. Конечно, будет ошибка.
    Попробуйте по тем "хитровывернутым" формулам что я приводил - должно всё получиться.
    Ну и так, на всякий случай, 124°5'3.127" записывается как 124.0503127
     
    #39
  20. geokm

    Форумчанин

    Регистрация:
    27 фев 2010
    Сообщения:
    659
    Симпатии:
    22
    Адрес:
    Москва
    Теперь все получается как надо. ::rolleyes24.gif::
    А то ввели в заблуждение, сначала
    потом
    А оказывается одни формулы для одного, другие для другого. ::wink24.gif::
     
    #40

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление