Мы в Telegram
Добавить новость
103news.com
Работа
Октябрь
2017

Библиотека для создания плана помещения

0
Необходимо разработать библиотеку для создания плана помещения. Библиотека будет использовать three.js.

Единицы измерения – миллиметры.

Задача разбивается на несколько этапов.

Этап №1 работа со сценой. На этом этапе необходимо создать сцену, на которой располагается плоскость THREE.PlaneGeometry. Добавить камеру с возможностью перемещения кнопками wasd и вращения мышкой + zoom.

Необходимо:

  • 1)поддержать экспорт в json формат и импорт сцены с объектами из него.
  • 2)На сцене расположить панель с кнопками управления
Этап №2 подключение плана помещения. План помещения загружается в виде рисунка (png, jpeg или svg) и располагается на плоскости.

Необходимо иметь возможность масштабирования плана помещения и его вращения относительно плоскости. Для удобства масштабирования используется 2 инструмента

Линейка - используется если на плане помещения известен размер стены. Тога пользователь отмеряет 2 точки на плане помещения и вносит реальный размер, например, 4700 мм. После нажатия на кнопку масштабировать план помещения увеличивается таким образом, чтобы указанное расстояние было равно 4700 мм. Пользователь может указать не только ширину, но и высоту (случай, когда план помещения искажен). Тогда рисунок растягивается как в ширину, так и в высоту.

Четырехугольник – используется в случае, когда на плане указана только площадь помещения, а длина стен неизвестна. Данный расчет возможен, когда искажения по длине и ширине нет.

Пользователь рисует четырехугольник и указывает его реальную площадь, например, 16.3 м2

Далее программа вычисляет площадь нарисованного четырехугольника по формуле: http://2mb.ru/matematika/geometriya/ploshhad-chetyrexugolnika/

После чего вычисляется поправочный коэффициент (реальная площадь делится на вычисленную и находится квадратный корень от значения)

На этот поправочный коэффициент и умножается ширина и высота плана помещения.

Этап №3 рисование стен Для начала пользователь рисует внешние стены. Для этого он кликает по углам внешних стен. Каждый клик образует вершину многоугольника. Клик по последней вершине заканчивает создание многоугольника. Далее пользователь может подкорректировать вершины передвигая их влево или вправо. Закончив создание многоугольника, он нажимает на кнопку рисовать стены. Программа по линиям многоугольника рисует стены. Далее пользователь корректирует ширину стен либо через панель управления, либо через сами стены.

При этом если выбрано 2 стены или более стен, то пользователь задает ширину этих стен.

По завершению создания внешних стен, пол закрашивается текстурой пола.

пример рисования стен можно взять отсюда https://planner5d.com/ru/editor/

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

Стены должны притягиваться друг к другу и к сетке, как сделано в примере https://planner5d.com/ru/editor/

Необходимо иметь возможность удаления стен или делать их не видимыми – функционал поддерживается в three.js остается только контур стены.

По окончании рисования внешних стен пользователь рисует внутренние стены.

Для этого он выбирает инструмент рисовать стену и ставит 2 точки. Между этими двумя точками рисуется стена.

Необходимо иметь возможность изменения высоты стены для всего помещения.

При клике на каждой стене необходимо подсвечивать ее цветом.

Этап №4 рисование проёмов, углублений или неровностей стен Рисование производится в режиме 3D. Пользователь выбирает стену и рисует на ней многоугольник. Далее он либо нажимает на кнопку удалить часть стены, либо тянет за стену, либо вдавливает ее внутрь.

По окончании редактирования должен получиться многоугольник со множеством вершин в каждом углу.





Губернаторы России
Москва

Сергей Собянин: Городские вокзалы объединяют маршруты





Москва

Артисты – они все особенные!


Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media
Москва

Сергей Собянин. Главное за день



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Анастасия Волочкова

«Нужно быть очень осторожной»: Волочкова высказалась о спутнике дочери




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

Дмитрий Вязьмикин – тренер по индивидуальной подготовке молодежного футбола «Локо»

Росгвардейцы обеспечили безопасность во время футбольного матча в Москве

Среди сотрудников уголовно-исполнительной системы Республики Дагестан определили лучшего гроссмейстера


Ролан Гаррос

Главный русский теннисист заставил Париж аплодировать ему стоя. Что удалось Осьминогу Медведеву?



Новости Крыма на Sevpoisk.ru


Архангельск

Архангельская область подключается к марафону "Сила России"



Частные объявления в Вашем городе, в Вашем регионе и в России