Я пытаюсь найти лучший способ структурировать мою программу.
Я планирую представить двухмерный план дома со стенами, дверями, окнами и колоннами . Стены имеют фиксированный размер и добавляются одна за другой. Колонны могут быть размещены только по бокам стены. Двери / окна расположены в тех же местах, что и колонны.
Кроме того, в будущем я планирую хранить планы в базе данных. Я не против делать какие-либо преобразования данных для сохранения / загрузки планов, если это облегчает манипулирование планами в программе.
Пример:
![Example plan](https://i.stack.imgur.com/42XtG.png)
Мои идеи пока:
- Использование двух матриц: одна для представления стен, а другая для представления колонн / окон / дверей. Минусы: Матрица стен будет странной, вы можете разместить больше вертикальных стен, чем горизонтальных стен в одном «ряду» плана
- Использование объектов, которые хранят ссылки на смежные объекты. Минусы: очень интуитивно понятное и, возможно, затрудняет вывод плана на экран
Я почти уверен, что это очень распространенный сценарий, и, надеюсь, мне удастся указать верное направление, какую структуру данных я могу использовать для внутреннего представления.