www.map-info.ru :: Просмотр темы - Округление координат узлов
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  
На страницу Пред.  1, 2
 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Ср Фев 14, 2007 3:35 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Софочка писал(а):
Шутки-шутками, но я числюсь в конторе программистом, и начальство меня не поймет, ежели я предложу им что-либо купить, вместо того, чтобы самой работать. Ну и потом, у меня уже спортивный интерес проснулся - ну что же там такого мудреного?

У вас контора наверное вообще ПО не покупает, есть же собственный программист! :)
Я вообще не понял почему у программиста появляются такие вопросы, ответ ведь очень прост. Про функцию Round наверное слышали? Цикл по всем объектам слоя, по все точкам какждого объекта и:
X:=Round(X,2); //округляем до 2-х знаков, или до скольки надо
Y:=Round(Y,2);

Реализацию функции round можно использовать по вкусу, у нас используется 2 разновидности.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Софочка



Зарегистрирован: 13.02.2007
Сообщения: 11

СообщениеДобавлено: Чт Фев 15, 2007 7:03 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Андрей Могильный писал(а):

У вас контора наверное вообще ПО не покупает, есть же собственный программист! :)

Да, именно так все и происходит, не далее как вчера закончила очередной релиз собственной операционки. Пишу сразу в машинных кодах - так проще.
Андрей Могильный писал(а):

Я вообще не понял почему у программиста появляются такие вопросы, ответ ведь очень прост. Про функцию Round наверное слышали? Цикл по всем объектам слоя, по все точкам какждого объекта и:
X:=Round(X,2); //округляем до 2-х знаков, или до скольки надо
Y:=Round(Y,2);

Мне функция Round уже в страшных снах снится, а уж циклы по всем таблицам, всем объектам, всем узлам объектов вообще с бесконечным лабиринтом при клинической сметри ассоциируются.
Этот метод - перебора узлов - я реализовала самым первым, мало того, он оказался и самым долгим. Когда у вас болото на всю трапецию, объект узлов этак в 10 000-20 000, то округлять координаты методом перебора узлов можно сутки.
Старый анекдот вспоминается про пациента психиатра, который жалуется на то, что его никто не слушает. Так вот я себя сейчас в роли того пациента ощущаю. Ведь я же писала, что когда я программно задаю координаты узлов (будь это создание нового объекта или изменение существующего), у меня затем появляются "хвосты" в координатах, типа 100.002, хотя я задавала эту координату как 100.
Андрей Могильный писал(а):

Реализацию функции round можно использовать по вкусу, у нас используется 2 разновидности.

Хотела попробовать обработать свои таблицы вашим Инструментарием, что-то он у меня не запускается. Ошибка "(_gtoolkit.mb:444) Преобразовать данные не удалось." . И дальше серия "Access violation ... in module gtoolkit.exe." Это у вас такие ограничения триальной версии? :D
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Нестеров Валерий



Зарегистрирован: 21.03.2006
Сообщения: 492

СообщениеДобавлено: Пт Фев 16, 2007 1:52 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Триальная версия не имеет ограничений, возможно у вас, как пользователя, не хватает прав на этом компьютере. При установке инструментария вы должны иметь права администратора на компьютере, на котором устанавливаете.

А насчет "Что такое неровные пределы карты?" в одном из предыдущих вопросов, то это, чтобы при делении протяженности карты на 2 000 000 000 получалось 0,1 или 0,01 или 0,001 и т.д., а не 0,09237.

Пример ровных пределов:

X min = -1 000 000; X max = 9 000 000
протяженность карты по "X" получается 10 000 000
расстояние между соседними узлами: 10 000 000/2 000 000 000=0,005
(теперь как бы вы не двигали узлы, в 3-ем знаке всегда будет или 5 или 0, а после нули)

Y min = 0; Y max = 2 000 000
протяженность карты по "Y" получается 2 000 000
расстояние между соседними узлами: 2 000 000/2 000 000 000=0,0001
(теперь как бы вы не двигали узлы, в 4-ом знаке значения могут быть от 0 до 9, а с 5-го знака будут нули)
-------------------------------------------------

Пример не ровных пределов:

X min = -1 000 000; X max = 1 954 000
протяженность карты по "X" получается 2 954 000
расстояние между соседними узлами: 2 954 000/2 000 000 000=0.001477
(теперь как бы вы не округляли значения узлов, после 3-го знака могут быть не нули)
_________________
Жизнь прекрасна!i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Софочка



Зарегистрирован: 13.02.2007
Сообщения: 11

СообщениеДобавлено: Пн Фев 19, 2007 6:40 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Нестеров Валерий, спасибо еще раз. Я уж вроде сама с этим разобралась, но тем не менее, спасибо. :D
Насчет установки вашего Инструментария... Я на своей машине администратор, и программа успешно инсталлировалась. Она запускаться не хочет, выдавая указанную мною ошибку. :(
ОС у меня - windows XP prof. Попробовала на соседней аналогичной машине - там все нормально запускается и работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
На страницу Пред.  1, 2
Страница 2 из 2

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


Top.Mail.Ru