fabric.js Как реализовать вспомогательные лини объекта для чертежа и ярлыки?
Как в fabric.js можно реализовать вспомогательные лини объекта для чертежа и ярлыки ? Вот так как в примере
https://i.paste.pics/d722f8c3bbd0a4a...f34142d265.png |
Так можно это реализовать. Только на чертеже белые точки (маркеры) можно передвигать и при этом размеры динамически меняются.
При этом соответственно надо менять тогда и надписи в ярлыках и вспомогательные линии А также привязку к объекту надо реализовывать самостоятельно. А я предполагал, что в в fabric.js уже реализовано что-то такое |
И для уголков не подходит Triangle Это по сути 2 отрезка То есть нет третьей стороны соединяющей их
Допустим вместо Triangle можно использовать 2 Line. Но как найти углы сторон Polygon-а ? Вообще в полигоне fabric точки идут по кругу То есть x1 связан с x2 и x самый последний Готового в fabric для этого ничего нет |
Не плохо А вот в случае с углами надо вычислять перпендикулярную каждой стороне линию
Есть какие нибудь готовые мат функции для этого или механизмы ? |
Проблема не только в школьном курсе
Например я вычисляю перпендикуляры для каждой стороны полигона соответственно. Это для отображения тех же уголков на чертеже Но при перемещении всего четежа В данном случае это земельный участок подразумевается Так вот изменяются значения 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:30. |