LINUX.ORG.RU
Ответ на: комментарий от deep-purple

Это можно реализовывать пользовательскими ф-циями или классами вроде [code] function horizontalMarking(x1, x2, top, value) return [ createTriangle(x1, top, angle), createLine([x1, top, x2, top]), createTriangle(x2 - 5, top, angle), createText('' + Math.round(value), 0.5 * (x1 + x2), top) ][/code]

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

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

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

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

mirek ★★
() автор топика
Последнее исправление: mirek (всего исправлений: 1)
Ответ на: комментарий от mirek

можно передвигать и при этом размеры динамически меняются

Ну, заключи перерисовку всей карты в коллбек перемещения мыши пока захвачен маркер.

deep-purple ★★★★★
()
Ответ на: комментарий от mirek

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

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

mirek ★★
() автор топика
Ответ на: комментарий от deep-purple

В принципе да. Но встроенного механизма нарисовать перпендикулярную прямую все же нет

Это при том, что координаты всех объектов не соответствуют экранным точкам так как чертеж предполагает масштабирование не так просто

mirek ★★
() автор топика
Ответ на: комментарий от deep-purple

Например после обратного преобразования координат щелчка в координаты полигона получается какая то ерунда var mInverse = fabric.util.invertTransform(matrix); var pInObjPixels = fabric.util.transformPoint(new fabric.Point(pointer.x, pointer.y), mInverse)

Тут pointer.x это координаты щелчка полученные через canvas.getPointer(event)

Точка щелчка имеет индекс 1 на скришоте https://i.paste.pics/4ef9f48da6936f271f1806fe8a3c5264.png

Я щелкнул по верхней стороне полигона И вот ее координаты x: -1.63 y: -2.99 совсем не лежат на одной прямой с 0 и 2 индексами массива точек полигона

mirek ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.