![]() |
тысячные считаются для каждой секции (секция есть отрезок между двумя TrackNode, у каждой из которой есть координаты и высота).
gradient:=(Segment.Node1.y - Segment.Node2.y) / (Segment.Length / Translator.MetersInDekart) * 1000; т.е. разница высот (в метрах), деленная на длину секции в метрах. и помноженное на 1000, чтобы ‰. плюсы с минусами это понятно, для этого я подумаю над рисование векторов – стрелочек, указывающий направление, откуда считалось значение. обьединять это хорошая идея, надо подумать. воспринимается плохо – дык это карта, а не профиль пути все-таки. но я начал с добывания данных, профиль еще нарисуется. а раз данные есть, почему бы не повесить на отдельную галочку. вот мне уже щас хоть бери и печатай и едь.. я еще галочку Абсолютные высоты добавить планирую.. высоту от нуля? а что есть ноль? самая минимальная высота в маршруте? нормировать по ней? |
Ноль он и Африке ноль, т.е. значение 0.0.
Позволяет отобразить общий ландшафт, с минусом это уже выемка, с плюсом горка. По алгоритму понял, ты берешь следующий трек как конец расчитываемого. В W еще есть параметр QDirection, второе значение это уклон секции, не знаю зеркалится ли он в tdb, можно было-бы воспользоваться, но есть подводный камень - он считается от линка, т.е. минус это еще не значит уклон, все зависит от того откуда выкладывали путь. Наверно по следующему треку вычислять окончание правильно, но как быть если два трека, скажем по 500 метров стыкуются концами? Ведь высота линков ни о чем не скажет, хотя между ними, если они имеют разные уклоны должно что-то быть. |
ну ноль есть ноль, а в савелово, например, нету ноля, там ландшафт в среднем на 120 м выше уровня моря. что плохого? :) плюс и минус с выемкой и горкой – это понятие относительное. одна платформа на 120 м, вторая на 100. что здесь происходит – первая на горке, или вторая в выемке?? то то же :) неизвестно. а вот если мы знаем среднеландшафтную высоту в вакууме – 120, – то значит вторая платформа в выемке.
w файлы я вообще не трогаю, там загадок своих полно. пока данных хватает.. [size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size] [QUOTE=Zabor;376028]По алгоритму понял, ты берешь следующий трек как конец расчитываемого.[/QUOTE] внутри TrVectorSections да, там сколько точек, столько рожается и секций, но на одну меньше (10 точек, 9 секций), а межузловые отношения описаны в ссылающихся узлах TrPins, по ним находим привязанные секции. |
Ничего плохого, я вот и говорю - уровень расположения станций еще ничего не определяет. За точку отсчета можно в принципе принять среднее значение высоты всех секций, но оно опять не даст 100% гарантии определения спуска/подъема.
|
я думаю что надо брать самое меньшее значение та и все. потом от него профиль строиться и видно сразу подъемы и спуски.
|
ну если речь про диапазон график профиля, то тут все прозрачно: нижняя планка – наименьшая высота, встречаемая в трекнодах, верхняя – наибольшая
|
почти научил читать tsection.dat. пока еще не до конца понял, в какую сторону вертеть секции и как их откладывать
|
tsection.dat уже читается.. я так думаю, что для него повесим отдельный пункт меню, один раз вычитаем и сохраним в свой формат (двоичный сжатый), и будет он лежать под боком у маппера.. мгновенно загружаться секции будут, и не придется его парсить каждый раз. а сам tsection.dat меняется относительно редко. поменялся – перечитал его и все дела..
я, кстати, с картами такой же механизм думал :) сохранить степановку во что-то похожее, и весить будет не 17 метров, а 1 к примеру, грузиться почти в момент, и что главное, не жрать 230 метров на его разбор... кто за? :) [size="1"][color="Silver"]Добавлено через 1 час 4 минуты[/color][/size] итого: tsection.dat - 5.05 МБ, загрузка 2-3 с двоичный несжатый индексный файл - 1.21 мб, загрузка доли секунды двоичный сжатый индексный файл - 171 кб, загрузка доли секунды расход памяти на разбор дерева отсутствует |
Мну за, особенно БД создать по секциям, включая длину кривых и просто из неё подставлять при отрисовке "технической" карты, тогда куски, из которых состоят многие секции из tdb не надо будет вычитывать и для глаза привычнее, а если еще и подписать секции то вообще отпад =)).
А tsection.dat это же динамическая гадость, как ты там разобрался. :crazy: |
[QUOTE=Zabor;376348]Мну за, особенно БД создать по секциям, включая длину кривых и просто из неё подставлять при отрисовке "технической" карты, тогда куски, из которых состоят многие секции из tdb не надо будет вычитывать и для глаза привычнее, а если еще и подписать секции то вообще отпад =)).
:crazy:[/QUOTE] это все в идеале :) конечно же, ломать существующее я не буду, т.к. tdb надо чем то же открывать, пускай чтобы потом и в своем сохранять.. но я думаю не хранить секции, т.к. код кеширования уже есть и работает универсально. а вот сохранять/читать слепки структур, в которых у меня хранится вся эта куча – это несложно.. [QUOTE] А tsection.dat это же динамическая гадость, как ты там разобрался. [/QUOTE] раскурил.. а вообще разве не в нем хранится инфа по форме обьектов? в TrVectorSection, который в tdb, первый параметр каждой записи как раз указывает на TrackSectionID... а в tsection.dat по этому ИД находим запись и смотрим ее форму - длину, радиус кривой, угол поворота.. в общем, все что надо для красивой отрисовки ломаных дугой... [size="1"][color="Silver"]Добавлено через 9 минут[/color][/size] 1.1 beta. [URL="ftp://netanton.no-ip.org/pub/mapper-setup.exe"]ftp://netanton.no-ip.org/pub/mapper-setup.exe[/URL] здесь уже индексатор tsection (кому не лень, выложите свой idx где-то), а также добавлена отрисовка уклонов, высот... в общем внимательно смотрим что нового на левой панели :) |
[QUOTE]в TrVectorSection, который в tdb, первый параметр каждой записи как раз указывает на TrackSectionID... а в tsection.dat по этому ИД находим запись и смотрим ее форму - длину, радиус кривой, угол поворота..[/QUOTE]Угу, только эта связь частенько разрывается, случается данные в tsection.dat кривые, есть несколько типичных ситуаций, когда этот механизм дает сбои в 100% случаев, не удивлюсь, если ты в tsection.dat раскопаешь горы мусора.
|
:D дык я пока этот маппер, да и менеджер сценариев до кучи писал, уже стал почетным археологом в этих дебрях, не удивлюсь.
мало того, видел своими глазами, как в TrackItems одна нода платформы вторым концом привязана к светофору :D а миллиард потерянных светофоров без линков (или то просто нерабочие по ИСИ?), это давно не новость.. мы что в tsection найдем, то и будем с его помощью дугами рисовать, а остальное как сейчас |
Вот, косяк вылез. Не везде отображаются уклоны. Там уклон порядка 16 тыщ.
[URL=http://s52.radikal.ru/i137/1212/ec/94c5cc66e1bb.jpg][IMG]http://s52.radikal.ru/i137/1212/ec/94c5cc66e1bbt.jpg[/IMG][/URL] |
Tarik, можно tdb посмотреть?
|
У меня кстати тоже не все уклоны.
"А он там есть" (с) ДМБ |
Текущее время: 21:33. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim