![]() |
|
![]() ![]() ![]() |
|
m_maxser |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 5.2.2008 Репутация: нет Всего: нет |
Здравствуйте,
На работе появилась задача разработать конструктор чертежей. Общее описание такое: загружается svg-документ, который содержит стилизованное изображение помещения, т.е. это просто фон. На этом изображении есть только неразрушаемые объекты (внешние/несущие стены, колоны, лестницы и т.п). Все остальное пространство должно заполняться пользователем. Пользователь может добавлять/удалять стены/двери, проводить линии коммуникаций (электропровод, водопровод, газо... и т.п.). Пользователей два типа: менеджер и инженер. Инженер может запретить изменять некоторые участки планировки. Вижу решение так: создаю таблицы "Точки" и "Линии". Думаю, что с первой таблицей все понятно - это координаты. "Линии" - это связи из двух точек, у которых указывается тип (стена, водопровод и т.п.). Потом все тупо отрисовывается по координатам. За неимением других идей, приступил к реализации этого метода. Хотел бы узнать как другие специалисты подошли бы к решению этой задачи. Спасибо. P.S.: это все разрабатывается под веб, пользователь работает с системой через браузер. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
По интерфейсу - должно получится visio - довольно удобный инструмент для всякого разного чертильно-диаграмного.
В качестве онлайн альтернативы - можно посмотреть https://www.lucidchart.com/pages/tour/visio_alternative Для самодельного проекта сложновато, но подсмотреть и потырить некоторые идеи и их браузерные реализации вполне можно. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
m_maxser |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 5.2.2008 Репутация: нет Всего: нет |
ksnk, спасибо. ссылка интересная. Вопрос отрисовки меня пока не сильно беспокоит (использую fabric.js), мне сейчас куда важнее правильно спроектировать алгоритм.
Как правильно описать сущности (стены, линии коммуникаций, неразрушаемые объекты) со стороны фронтэнда и бекэнда? Как сделать это все масштабируемым? Вдруг они захотят впоследствии еще и мебель там размещать? Это сообщение отредактировал(а) m_maxser - 7.10.2013, 11:28 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
m_maxser, Есть "объекты" - столы, стулья - они задаются контуром с фиксированным размером и центральной точкой. Могут вращаться. Есть коммуникации - провода, трубы, стены - задаются граничными точками, имеют ширину. При изменении граничных точек коммуникация перерисовываются.
Есть объекты - подписи, элементы блоксхем - задаются контуром и могут растягиваться по XY. По идее - этого может быть достаточно для начала. Потом можно ввести "чертежные размеры" -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Существует море программ позволяющих расставлять мебель по кватрире: как на плане, так и в 3D. ИМХО идентичная задача - стОит покопаться в этом направлении - наврняка можно нарыть и готовый код и/или соответсвующие пакеты (ну чтобы велик не изобретать).
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |