Форум Trainsim  

Вернуться   Форум Trainsim > Microsoft Train Simulator > MSTS - Маршруты

Ответ
 
Опции темы Опции просмотра
Старый 14.08.2009, 23:22   #16
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

Как тебе это удалось?
Помогли люди.
Как может сказаться на других функциях или этот байт отвечает исключительно за округление?
Если я правильно помню, то только за округление. Для всех записываемых чисел с запятой.
lyolik вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА

 
Старый 14.08.2009, 23:32   #17
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

Шок прошел, немного потестил, как ни странно, но на стыках тайлов даже такая точность не дает идеальной стыковки, упертая вещь МСТС, но все в допуске, можно пренебречь.

Подожди как для всех цифр? Высоту в позиции и QDirection он так и писал, значит какое-то разделение значений у него все же есть.

Обратную совместимость проверял? Я в смысле как пойдет маршрут на обычном (без правки) exe.

И какие параметры "зацепило"?

ps Хорошие люди тебе помогли, если тест пройдет успешно - за такие вещи нужно памятник ставить, лично для меня это несколько лет свободного времени убитого на коррекцию тупости МСТС.
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
Старый 14.08.2009, 23:43   #18
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

Подожди как для всех цифр? Высоту в позиции и QDirection он так и писал, значит какое-то разделение значений у него все же есть.
Там для всех чисел с точкой этот атрибут используеться.

Обратную совместимость проверял? Я в смысле как пойдет маршрут на обычном (без правки) exe.
Нет. Ездил на правленом.

И какие параметры "зацепило"?
Надо смотреть по файлам сценария, путей, трафика и сравнивать до и после. Я точно не знаю, но есть такое предположение. Если готовый маршрут переложить то бывает ошибка.
lyolik вне форума   Ответить с цитированием
Старый 14.08.2009, 23:55   #19
Grebnev
Администратор
 
Аватар для Grebnev
 
Регистрация: 09.04.2008
Адрес: Россия
Сообщений: 4,625
Вы сказали Спасибо: 1,342
Поблагодарили 3,960 раз(а) в 719 сообщениях
Grebnev отключил(а) отображение уровня репутации
По умолчанию

Совсем офф, но пока тема горяча....а какой байт отвечает за количество, имена и командные клавиши анимации деталей типа дверей в ПС? Я уже тут даже тему специальную завел для ответа)

http://www.trainsim.ru/forum/showthr...?t=4902&page=3


Может уважаемые добрые люди и здесь помогут?
Grebnev вне форума   Ответить с цитированием
Старый 15.08.2009, 00:01   #20
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

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)
Цитата:
Position ( 60000000 00000000 A0000000 )
QDirection ( 00000000 40000000 00000000 40000000 )
весело

===============

Изрядно погуглив пришел к выводу что мы имеем дело с модификатором точности и кодом формата функции printf (почитать можно тут и тут, исходя из этого получается, что приемлемым вариантом будут только коды g и f.

Как я понимаю это коды вывода числа с плавающей точкой и "по умолчанию" число знаков после запятой (точки) как раз равно 6, g это более короткий вариант формата f (Билл скотина!).

Меняя код % g (67) на % f (66) мы указываем функции printf выводить в W файлы числа в "полном формате" f, но по умолчанию он ограничен 6 знаками, что для QDirection вероятно недостаточно, да и нужно стремиться к совместимости со "стандартным" вариантом, там максимум 10 разрядов.

Почитав описание функции решил обнаглеть и попробовать указать число знаков явным образом записав в файл %0.8f выйдя за пределы строки, ожидал ошибки, но как ни странно все работает и я явно "перестарался" ( т.е. симулятору плевать на ".8" ):

Цитата:
TrackObj (
UiD ( 382 )
SectionIdx ( 38110 )
Elevation ( 0.0000019c9c )
CollideFlags ( 535 )
FileName ( A1t2_6mtrConcrete.s )
StaticFlags ( 00200180 )
Position ( 877.4630135478814 17.0998995478814 375.0440065478814 )
QDirection ( 0.0000015478814 0.3445125478814 0.0000015478814 0.9387825478814 )
VDbId ( 4294967294 )
StaticDetailLevel ( 0 )
)
Курим описание функции дальше…

ps могу конечно ошибаться ибо не программист, но ИМХО путь указанный lyolik
правильный, тут совсем нелишней была бы помощь программистов.
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.

Последний раз редактировалось Zabor; 15.08.2009 в 17:26.
Zabor вне форума   Ответить с цитированием
Старый 15.08.2009, 17:25   #21
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

Рано я так обрадовался, получается, что мы меняем шило на мыло вот изменения в записи стрелки до правки кода формата вывода в W файл и после:

Цитата:
Elevation ( 0.000916297 )
JNodePosn ( -4973 15341 -734.123 22.4526 -586.943 )
FileName ( A1tPnt7_5dLft.s )
Position ( -734.123 22.4526 -586.943 )
QDirection ( 0.000450976 0.176259 8.07508e-005 0.984344 )

Elevation ( 0.000916 )
JNodePosn ( -4973 15341 -734.122986 22.452600 -586.942993 )
FileName ( A1tPnt7_5dLft.s )
Position ( -734.122986 22.452600 -586.942993 )
QDirection ( 0.000451 0.176259 0.000081 0.984344 )
Elevation - точность возросла
JNodePosn - точность возросла
Position - точность возросла
QDirection - тут все очень спорно, по некоторым значениям точность возросла, по некоторым снизилась в зависимости от разрядности исходника, а с некоторыми происходят странные метаморфозы, например третье значение 8.07508e-005 -> 0.000081 совсем неясно чем это грозит, понятно только что "e-005" какой-то бред, но столь значительное изменение целых с 8 на 0 пугает.

Что еще настораживает - а не пишем ли мы теперь обрезанные до 6 знаков после точки значения в БД? Ведь столь серьезное увеличение точности Position должно было дать практически идеальные стыки ниток в БД, однако, на деле это не совсем так, хотя и в допуске.

Также не очень понятно, почему код формата %e не мешал записывать в параметр QDirection значения вида 0.000450976 при этом обрезая значения в Position строго на шести разрядах независимо от числа знаков после точки, зато %f порезал или дотянул все значения всех параметров до 6 знаков после запятой.

Вероятно то, что писать в Position определяется где-то еще отдельно.

Еще странность варианты типа %.3f, %.8f, %.9f никакого впечатления на MSTS не производят.
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
Старый 15.08.2009, 19:03   #22
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

Grebnev постараюсь узнать, что можно сделать. Правда я не совсем понял что нужно.

Zabor например третье значение 8.07508e-005 -> 0.000081 совсем неясно чем это грозит, понятно только что "e-005" какой-то бред,
"e-005" это 10 в степени -5. Все правильно там.

Наверное нужно делать с нуля маршрут и сценарии с правленой точностью, а смешивание с обычной точностью дает сбой. Скорее это улучшение только для разработчиков. Готовый продукт править нельзя.
lyolik вне форума   Ответить с цитированием
Старый 15.08.2009, 19:16   #23
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

lyolik, совершенно понятно, что для разработчиков, причем озабоченных стыковкой, таких какнапример я, многие на эти ошибки просто не обращают внимания, не говорю, что это плохо, лично сам с ними смириться не могу.

Со значением понятно, а вот почему QDirection пишется без правки с такой точностью как нужно не очень.
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
Старый 15.08.2009, 20:57   #24
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

Со значением понятно, а вот почему QDirection пишется без правки с такой точностью как нужно не очень.
Может это значение осталось от предыдущего раза? Я заметил, что перезапись идет только частичная. Если не двигать объекты, то они не перезаписываються. Возможно идет перезапись только w файлов на которых было изменение места объекта.
lyolik вне форума   Ответить с цитированием
Старый 15.08.2009, 21:18   #25
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

При перезаписи W файла "исправляются" все значения у всех объектов, т.е. во всем файле, перезапись соответственно происходит если сдвинуть любой, даже статический объект.

Прогнал пару км на правленом exe (%f) - субъективно "непроваров" меньше, но они есть все равно, видимо улучшив одно ухудшили другое =((.
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
Старый 15.08.2009, 21:24   #26
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

Может нужно пересборку маршрута сделать. Возможно "непровар" это когда строили путь из двух точек навстречу и в этой точке уже нельзя застыковать идеально. Длина рельса не позволяет.
lyolik вне форума   Ответить с цитированием
Старый 15.08.2009, 22:27   #27
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

Дык я пересборку и делал - подъездной путь, который лежал на отметке старого профиля пересробрал весь на новой высоте, без нудной проверки стыковки после КАЖДОЙ секции, потом поехал, на 1 км 4 "непровара", 2 из которых вне допуска…

Получается единственный путь - декопилировать файл, добавить как полагается %.9f затем компилировать обратно, но это уже задача для программистов, у меня сейчас пока настроение освободить безвозвратно 95 ГБ на диске, надеюсь это временно.

ps большое тебе спасибо за подсказу, в exe много нашел нового, вывод практически всех параметров повязан на printf.
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
Старый 15.08.2009, 22:28   #28
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

Еще странность варианты типа %.3f, %.8f, %.9f никакого впечатления на MSTS не производят.

У меня работает. Если ставлю тип %.3f то 3 цифры после запятой, типа %.4f то четыре.
lyolik вне форума   Ответить с цитированием
Старый 15.08.2009, 22:30   #29
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

Странно, скинь мне exe через обменник ссылкой в личку, может я что-то не так или не той программой делаю?
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.
Zabor вне форума   Ответить с цитированием
Старый 15.08.2009, 22:36   #30
lyolik
Пользователь
 
Регистрация: 12.08.2009
Сообщений: 70
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lyolik стоит на развилке (репутация по умолчанию)
По умолчанию

хорошо, только чуть позже. минут 10
lyolik вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:55. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?