Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   fabric.js Как реализовать вспомогательные лини объекта для чертежа и ярлыки? (https://javascript.ru/forum/library-toolkit-framework/81487-fabric-js-kak-realizovat-vspomogatelnye-lini-obekta-dlya-chertezha-i-yarlyki.html)

mirek 05.12.2020 01:50

fabric.js Как реализовать вспомогательные лини объекта для чертежа и ярлыки?
 
Как в fabric.js можно реализовать вспомогательные лини объекта для чертежа и ярлыки ? Вот так как в примере
https://i.paste.pics/d722f8c3bbd0a4a...f34142d265.png

mirek 06.12.2020 10:27

Так можно это реализовать. Только на чертеже белые точки (маркеры) можно передвигать и при этом размеры динамически меняются.

При этом соответственно надо менять тогда и надписи в ярлыках и вспомогательные линии

А также привязку к объекту надо реализовывать самостоятельно.

А я предполагал, что в в fabric.js уже реализовано что-то такое

mirek 06.12.2020 23:58

И для уголков не подходит Triangle Это по сути 2 отрезка То есть нет третьей стороны соединяющей их

Допустим вместо Triangle можно использовать 2 Line. Но как найти углы сторон Polygon-а ? Вообще в полигоне fabric точки идут по кругу То есть x1 связан с x2 и x самый последний

Готового в fabric для этого ничего нет

mirek 08.12.2020 00:02

Не плохо А вот в случае с углами надо вычислять перпендикулярную каждой стороне линию

Есть какие нибудь готовые мат функции для этого или механизмы ?

mirek 15.12.2020 10:05

Проблема не только в школьном курсе

Например я вычисляю перпендикуляры для каждой стороны полигона соответственно. Это для отображения тех же уголков на чертеже

Но при перемещении всего четежа В данном случае это земельный участок подразумевается
Так вот изменяются значения Left и Top каждого уголка - перпендикулярной по отношению к полигону изображающему участок линии

Но вот x1, y1, x2, y2 этих линий-перпендикуляров при этом не меняется

И соответственно когда пользователь щелкает по точке и модифицирует сторону полигона то найти как относятся перпендикуляры чертежа к этой стороне не возможно так как координаты x1, y1, x2, y2 перпендикулярных линий у схеме остаются те, что были до перемещения всей схемы

Я погуглил и нашел это
We cannot implement it on moving since it would clutter the move event without reason, but we can totally write a short method get current points

При этом автор советует реализовывать этот метод используя width и height объекта

Я попробовал реализовать этот short method
При этом получаются приближенные значения x1, y1, x2, y2 до .005 тысячных

Ну и соответственно сравнение типа obj.х1 == searchp.x1 не срабатывает

Тут можно чудить еще. Округлять например. Только это ни к чему не приведет.

Потому-что реальные координаты перемещенной точки на самом полигоне после перемещения приобретают также не фиксированную точность


Часовой пояс GMT +3, время: 23:24.