![]() |
![]() |
|
Сайт | ПРАВИЛА ФОРУМА | FAQ | Регистрация | Справка | Пользователи | Социальные группы | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
![]() |
#11 | ||
Разработчик
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
![]() |
![]()
lyolik, подложил обратно exe без правки - все Ок, в принципе закономерно, БД не изменяется и симулятор использует траекторию записанную в БД с той точностью как записано, он туда вновь стыкуемые секции и писал достаточно точно, а вот при переборке (когда данные берутся из W) начинался ужас со стыковкой.
Изменять путь проложенный в правленой версии из обычной пробовал - без проблем. Насчет всех цифр, похоже "досталось" QDirection, раньше записывался до 9 знаков после запятой, теперь до 6 как и Position. А что если другие значения кроме 66? add Очень интересные эксперименты =)), в исходном варианте было % g (67), мы задаем f (66) может это заглавные буквы разрядности? Пробую разные варианты, при d (64) он пишет вообще без запятой до 10 разрядов, при Q (51) выдал во всем файле "Position ( Q Q Q )" ![]() По соседним сходным значениям он понимает e, u, d и 0.2 но 0.2 это уже выход за смещение, очень интересно… % p (70) Цитата:
![]() =============== Изрядно погуглив пришел к выводу что мы имеем дело с модификатором точности и кодом формата функции printf (почитать можно тут и тут, исходя из этого получается, что приемлемым вариантом будут только коды g и f. Как я понимаю это коды вывода числа с плавающей точкой и "по умолчанию" число знаков после запятой (точки) как раз равно 6, g это более короткий вариант формата f (Билл скотина!). Меняя код % g (67) на % f (66) мы указываем функции printf выводить в W файлы числа в "полном формате" f, но по умолчанию он ограничен 6 знаками, что для QDirection вероятно недостаточно, да и нужно стремиться к совместимости со "стандартным" вариантом, там максимум 10 разрядов. Почитав описание функции решил обнаглеть и попробовать указать число знаков явным образом записав в файл %0.8f выйдя за пределы строки, ожидал ошибки, но как ни странно все работает и я явно "перестарался" ( т.е. симулятору плевать на ".8" ): Цитата:
ps могу конечно ошибаться ибо не программист, но ИМХО путь указанный lyolik правильный, тут совсем нелишней была бы помощь программистов.
__________________
Присылайте ваши сценарии в копилку msts. Опыт - это нечто, что приобретается сразу после того, как это было нужно. 100% не предпринятых попыток обречены на провал. Последний раз редактировалось Zabor; 15.08.2009 в 17:26. |
||
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
|
![]() Что это? |