C # структура данных для метрополитена - PullRequest
2 голосов
/ 12 июля 2011

Как лучше всего хранить в приложении данные метро ?

Данные состоят из позиций станций метро, ​​длины туннелей между станциями, выравнивания меток при рендеринге, типов дуг, которые нужно рисовать при рендеринге туннелей, развязок и т. Д. *

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

1 Ответ

2 голосов
/ 12 июля 2011

Я бы предложил создать разные модели данных, которые бы обрабатывали разные части вашей проблемы (потому что у вас разные ограниченные контексты).

Использование ориентированного графа не составляет труда.Вы должны реализовать его очень абстрактно, чтобы вы могли повторно использовать достойные, проверенные алгоритмы поиска пути.В зависимости от выбранного вами алгоритма (A *, вероятно, является хорошим кандидатом), ваша модель данных должна быть оптимизирована для этого алгоритма.В случае A * это начинается с определения значимой, практически релевантной топологической сортировки на ваших станциях метро (евклидово расстояние хорошо для начала, но, анализируя природу ваших данных и настраивая их, вы, вероятно, получите приличный прирост производительности).Другим аспектом является использование кешей для различных вычислений и быстрое удаление станций.

Для представления вы хотите создать другую модель вашего графика, которая может содержать всю информацию, относящуюся к представлению (цвета, тексты и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...