![]() |
По большому счету - никто ничего давать не хочет. Пообщался я с парой проектов. Мне, который 5 лет занимается проектами, куски моего кода на половине серверов, говорят "А что с этого буду иметь..." Аж противно стало, до чего люди с короткой памятью.
|
Что-то я не уловил, если пиксели на map_t.tga с шагом 200 м то почему же координаты точек маршрута не кратны 200-м?
500.00 43500.00 20.00 0 70 5.555555820465088 6300.00 43500.00 20.00 6500.00 43700.00 20.00 :I'm_thinking: И еще, просто интересно, а с ботами как быть предполагается, или уж совсем без них? |
Цитата:
|
Офигел чтоль... :)
6500 - 6300 = 200 43700 - 43500 = 200 Это от начальной точки может быть по всякому. А то что 500 а не 400 - так и надо. Отсчет то полпиксела учитывает, видимо. Т.е. если линия идет посередине квадратного пиксела ( 200х200м) то как раз смещение на половину. Боты обязательно. |
Цитата:
|
Добавлю и я свои 5 копеек... :)
Проблема прокладки маршрута красиво решается с использованием теории графов. Припоминаю, что в свое время на третьем курсе я писал курсовую работу - программу на PL/1, которая реализовывала алгоритм нахождение пути в лабиринте. Вкратце суть сводится к следующему: лабиринт описывается в виде матрицы графа, затем производится "взвешивание" этого графа относительно конечной точки маршрута, после чего берется начальная точка и маршрут получается практически сам собой, простым "подъемом" по взвешенному дереву графа (по сути при формировании пути останется решать только задачу выбора пути из двух или более вариантов). Как я понимаю, отрезки и узловые точки дорожной сети тем или иным способом вы уже получили, т.е. налицо та самая матрица. Ребра графа в данном случае могут хранить отрезки дорог (в общем случае это ломаные линии) между перекрестками, что даст возможность прокладывать маршруты не только по критерию "самый короткий путь". Думаю, что этот метод и реализован в редакторе :) |
Трассировка tga? Это ползадачи, надо еще мосты привязывать. У каждого моста свой номер и координаты.
Нужен алгоритм итоговый... Хотя.. вроде уже понимаю как надо сделать. Спасибо LSA, подтолкнул мысли - надо брать отрезки, а не вершины для расчета.. Если коротко: Надо найти все отрезки дорог в один список (X1,Y1,I1 ;X2,Y2,I2) , где I - идентификатор точки. Вот это один отрезок: [[7300.00, 50900.00, 20.00], [7500.00, 50700.00, -42.00]] У нас будет один список с такими отрезками, его получить надо с mis Делаем в ПН "штриховку" 1 или более длииииными маршрутами Утилитой формируем список - удаляем дубли. Готов тхт файл (или в другом виде) При генерации находим ближайшую вершину, Берем отрезок и пошли перебором, взяли конец - нашли начало другого, + в маршрут. При нахождении "перекрестка" определяем отрезок, конечная точка которого ближе к таргет, берем его и пошли дальше. Если последняя координата не повторяется - это конец дороге. Прикинул - это будет достаточно быстро. Ну и так далее, дело техники. Утилиту по парсеру *.mis кто-то может собрать по быстрому? Её назначение парсинг, удаление дублей в том числе и (x,y) = (y,x) Вывод в формате a b b c c d с а с f f b ......... 6300.00 51700.00 20.00 6500.00 51700.00 20.00 6500.00 51700.00 20.00 7300.00 50900.00 20.00 7300.00 50900.00 20.00 7500.00 50700.00 -42.00 ......... Вуаля. Обработку этого файла уж каждый проект будет делать по своему. Могу себе утилитку сделать и на Питоне, но если будет *.exe, это будет универсальный парсер маршрутов для общего пользования. список только точек сам по себе бесполезен |
Цитата:
|
да уже ненадо. А вобще, номер пишется как -XX. Я так понял.
7500.00 50700.00 -42.00 |
Цитата:
Поищу. |
А... Ты наверно из Мурманска :)
Я ж сказал - для всех :) Зачем другим ставить для одной утилитки питон? На питоне то я и сам сделаю, всё что нужно уже есть. Наверно на выходных, как с маршрутами для ботов закончу. |
Цитата:
А про генератор маршрутов, "для всех" нужен только алгоритм - кто на чем хочет, на том закодирует и прикрутит к своему остальному софту. П.С. А на Питоне тоже можно делать исполняемые файлы .exe |
Хм, а парсер лога сервера нигде не завалялся? На чем угодно. В декомпилировании несилен.... :(
|
Хм,ну в каждом проекте он есть в составе командера или демона. Как отдельной программы - не встречал. Ведь какую-то функцию парсер должен выполнять в итоге. В реале он везде как модуль в составе софта.
|
Цитата:
(я эту теорию уже благополучно забыл :(, хотя аналогичную курсовую делал, поиск всех возможных путей в графе, с исключением циклов) з/ы/ Перечитал и подумал мож и не так все сложно. Ведь все предполагается ИМХО для проекта когда колонна движется из НАЧАЛЬНОЙ точки самой первой миссии - значит вход в лабиринт есть и он один. К остальным независимым маршрутам (если они существуют) наземка поедет по «бездорожью». :( Хотя нет - все равно придется искать ближайшую дорогу. :) |
Цитата:
|
Вложений: 1
Да канечно. Вот на Питоне
|
Спасибо!!!
|
Получилось в общем-то. Запустил на ГФ.
Есть небольшие погрешности - при прокладывании маршрутов иногда срезаются углы. Чем точнее проложить маршруты для создания базы, тем точнее будет результат в миссии. Чтоб не создавать отдельную тему: Есть отдельный мод для "S" ? Нужно чтоб лог был(трекописание нужно обязательно), а всё о вражине отключено. |
Текущее время: 20:27. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot