Выделение прямоугольником в SVG
Originally reported on Google Code with ID 250
Создан тестовый jsfiddle для удобства работы. После того, как код будет написан и отлажен,
он будет интегрирован в мудл.
Ссылка:
http://jsfiddle.net/XLZ8W/17/
В данный момент удаётся получить координаты начала и конца выделение, но не отображается
прямоугольник. На 14 строчке он не хочет добавляться на страницу...
Reported by grvlter
on 2013-11-24 20:31:56
Comments (48)
-
repo owner -
Account Deleted Нашёл библиотечку, решающую проблему. В архиве приложен пример работы. Он пока не учитывает некоторых мелочей, которые будут исправлены позже. Прикрепляю архив сюда, что бы не потерять...
Reported by
grvlter
on 2013-11-27 19:07:48<hr> * Attachment: resize.rar
-
repo owner Лучше помимо архива напишите тут ссылку на эту библиотечку. Я гляну пару простых признаков о ее надежности....
Reported by
oasychev
on 2013-11-27 20:09:23 -
repo owner Valeriy: по 250 Отправлено в 0:05, четверг Valeriy: http://interface.eyecon.ro/demos/resize.html Отправлено в 0:05, четверг я: оно там нарочно не на всю картинку работает? Отправлено в 0:07, четверг я: гм. последний ньюс на сайте - январь 2007, и сайт какой-то глюковатый я бы осторожнее с этим делом был... возможно под современные браузеры не заработает нормально... Отправлено в 0:09, четверг я: и вообще это не совсем то, что надо - классический резиновый прямоугольник начинается с клика мышью и заканчивается ее отпусканием...
Reported by
oasychev
on 2013-11-27 21:26:54 -
Account Deleted По поводу размеров прямоугольника: он нарочно не на всю картинку, в скрипте заданы минимальные и максимальные размеры, которые в нашем случае могли бы задаваться динамически. В архиве, который я прикрепил к посту выше, прямоугольник может быть на всю страницу, это поправимо. По поводу классического резинового прямоугольника: можно задать координаты маркеров по нажатию и отпусканию мыши, эта проблема решаема. Стоит искать новую библиотечку или дописать этот код?
Reported by
grvlter
on 2013-11-28 13:16:54 -
repo owner Зависит от того, насколько легко найти новую библиотечку. Код похоже очень старый и давно не поддерживается - поищите последний коммит в репозитории, есть конечно вариант что сайт не поддерживается, а код поддерживается - но врядли. Если использовать - его надо тщательно проверить на всех современных браузерах, надеяться по умолчанию что он в хорошем состоянии нельзя...
Reported by
oasychev
on 2013-11-28 21:08:12 -
Account Deleted Обновлён код выделения. Теперь прямоугольник появляется при клике мышью.
Reported by
grvlter
on 2013-12-03 19:47:44<hr> * Attachment: resize.rar
-
Account Deleted Новая версия выделения. Добавлен check box, активируюищй режим выделения + кнопки отправки на сервер координат и отмены выделения.
Reported by
grvlter
on 2013-12-10 19:09:53<hr> * Attachment: resize.rar
-
repo owner Сделайте отдельный клон - так будет удобнее тестировать, чем при выкладывании архивом. Или коммитьте-выталкивайте, ревертнуть можно....
Reported by
oasychev
on 2013-12-15 17:19:59 -
Account Deleted 1) Для выделения на форму было добавлено 2 виджета: чек бокс, активирующий режим выделения и кнопка отправки выделения на сервер. Нужна ли кнопка на форме, или пусть пользователь выделить прямоугольником и он сразу обработается? 2) Как лучше проверять, попал узел в выделение или нет? а) рассчитать координату центра фигуры и проверять её; б) если хотя бы какая-то часть фигуры попала в выделение, то выделить фигуру.
Reported by
grvlter
on 2014-01-27 20:40:27 -
repo owner 1)Кнопка я думаю не нужна - обычно выделение прямоугольником срабатывает по отпусканию мыши 2) посмотреть на corel draw, Qt Designer и т.д. - когда там частично захвачен объект, он выделяется? По идее есть общепринятый вариант...
Reported by
oasychev
on 2014-01-27 20:54:49 -
Account Deleted 1) по поводу наличия кнопки могу сказать, что: а) дерево может не помещаться в видимой области, в режиме выделения прямоугольником panzoom отключены и пользователь мог бы выделить часть дерева, прокрутить картинку, довыделить ещё часть дерева и только после этого отправить. в этом случае можно попробовать оставить только zoom, но опять же дерево может быть настролько большим/экран настолько маленьким, что возможность довыделения могла бы быть полезной. б) инструмент работает не мгновенно, пользователю нужно подождать некоторое время, что бы увидеть результат. и, если он понял, что выделил не так, как хотелось, ему придётся дождаться новой картинки и выделить снова. По этому поводу могу сделать 2 версии: с кнопкой и без, и можем их сравнить уже в действии.
Reported by
grvlter
on 2014-01-28 06:35:29 -
Account Deleted Не могу прикрутить корректно панзум для дерева: если он прикручен к картинке дерева, то координаты выделения прямоугольником отсчитываются от корня DOM-дерева высплывающей формы, если же панзум не прикручен к картинке, то координаты отсчитываются от div, в котором лежит картинка. С чем это может быть связано? Пытались с Валерием подобрать css-стили для картинки и прямоугольника с выделением, но пока не получилось... Какие есть идеи по поводу решения данной проблемы?
Reported by
grvlter
on 2014-02-11 19:31:55 -
repo owner А в чем конкретно проблема? Я так понимаю раньше у нас было переключение - либо выделение прямоугольником, либо пан/зум - потому что нажатие кнопки мыши это и пан и выделение. Хотя конечно полезно было бы чтобы зум оставался в режиме выделения. Если выделение и пан/зум можно подружить, то остается один вариант - или с координатами от корня DOM-дерева все слишком плохо? Нельзя найти координаты div'а картинки и пересчитать в локальную систему координат?
Reported by
oasychev
on 2014-02-12 09:02:22 -
Account Deleted Теперь панзум и выделение прямоугольником работают корректно.
Reported by
grvlter
on 2014-02-15 18:03:14 - Status changed:Fixed
-
У меня пропадают кнопки\радиокнопки выделения. Открываю окно, сначала их видно, когда приходят картинки кнопки пропадают. И что-то странное с горизонтальными скроллбарами. Они видны, но по факту не скроллят - только панзум работает.
Reported by
vostreltsov
on 2014-02-17 13:32:51 - Status changed:InProgress
-
Регекс: char\s+str\s*\[\s*(4|)\s*\]\s*\[\s*3\s*\]\s*=\s*{\s*{\s*'д'\s*,\s*'е'\s*,\s*'ё'\s*}\s*,\s*{\s*'ж'\s*,\s*'з'\s*,\s*'и'\s*}\s*,\s*{\s*'й'\s*,\s*'к'\s*,\s*'л'\s*}\s*,\s*{\s*'м'\s*,\s*'н'\s*,\s*'о'\s*}\s*}\s*;+ А скроллбары предлагаю вообще убрать
Reported by
vostreltsov
on 2014-02-17 13:53:28 -
repo owner Ну теоретически лучше всего убирать скроллбары когда картинка меньше зоны отображения и ставить, когда она больше.... Хотя при пане конечно это немного излишне...
Reported by
oasychev
on 2014-02-17 18:09:52 -
repo owner Но Валерий, ситуацию со скролл-барами и вообще пан/зум надо обсуждать в #240. Здесь вопросы, связанные с выделением прямоугольником...
Reported by
oasychev
on 2014-02-17 18:16:53 -
repo owner У меня сейчас дерева не видно вовсе, а остальное работает (клон Стрельцова)
Reported by
oasychev
on 2014-02-20 22:10:38 -
Account Deleted Исправил баг с виджетами + установил чистый мудл и поставил на него прег из своего клона: всё работает.
Reported by
grvlter
on 2014-02-21 11:47:59 - Status changed:Fixed
-
repo owner Разбираемся с выделением в графе - именно там оно нужно.
Reported by
oasychev
on 2014-02-21 20:56:13 - Status changed:InProgress
-
Account Deleted Убрал выделение прямоугольником из дерева, пофиксил его в графе
Reported by
grvlter
on 2014-02-22 18:34:58 - Status changed:Fixed
-
repo owner Ну до fixed я так понимаю нам далеко. Надо обеспечить в графе возможность выделения не только узлов, но и кластеров, и некоторых дуг...
Reported by
oasychev
on 2014-02-22 19:39:52 - Status changed:InProgress
-
Account Deleted Выделение прямоугольником захватывает все полигоны, которые в него попали и рассматривает каждый в отдельности. Остаётся проблема с генерацией карты.
Reported by
grvlter
on 2014-02-22 20:09:28 -
repo owner Компьютер потестить будет в понедельник. Но ключевой вопрос - если например a+b регекс - можно ли выделить через граф a+ прямоугольником? Если получается, то остается вопрос с выделением пустоты и простых ассертов, которые представлены дугами. Но у дуг есть начало и конец, можно выработать какие-то правила от этого - либо выделять если попало что-то одно, либо если и начало и конец вместе...
Reported by
oasychev
on 2014-02-22 21:13:41 -
Account Deleted Копание в документации Graphiz'а дало плоды - на рёбра можно генерировать карту при некоторых условиях. Эти условия вполне выполнимы, так что всё будет как мы хотим.
Reported by
ZluMYO
on 2014-02-23 08:28:16 -
repo owner Выделение прямоугольником не захватывает весь рисунок - есть какая-то граница, в которую оно упирается до конца картинки. Лучше всего заметно если изменить масштаб так, чтобы граф оказался очень маленьким - выделить полностью большие прямоугольники квантификаторов (подвыражений), сконкатенированных в верхний уровень регекса при этом невозможно.
Reported by
oasychev
on 2014-03-10 21:32:06 -
Account Deleted Реализован расчёт точки центра тяжести для полигонов являющихся прямоугольниками. Это должно решить проблему выделения рёбер графа, которые являются прямыми линиями.
Reported by
ZluMYO
on 2014-03-16 07:50:39 -
Account Deleted Если вы имели ввиду про выделение подвыражения вот такую ситуацию: http://prntscr.com/31bhh6 , то теперь исправлено.
Reported by
grvlter
on 2014-03-16 14:27:57 -
Account Deleted По мимо этого теперь прямые линии не нужно полностью захватывать в прямоугольник, что даёт возможно выделять простые ассерты. http://yadi.sk/d/MgO1zPQfKdhNo
Reported by
ZluMYO
on 2014-03-16 18:06:34 -
repo owner 1. После использования выделения прямоугольником в дереве пропадает свертка - все дерево разворачивается. И, похоже, вообще пропадает возможность выделения/свертки в дереве - на клики оно не реагирует. 2. У меня при регексе a(^b|c)*de+ и попытке выделить d или e или оба вместе - стабильно зависает. Проверить - может быть конечно и гейзенбаг, но другие места выделяются без проблем - а здесь я так ни разу выделения и не получил.
Reported by
oasychev
on 2014-03-21 17:25:29 -
Account Deleted 1. теперь работает 2. после последних правок у меня всё успешно выделяется
Reported by
grvlter
on 2014-04-09 19:36:39 - Status changed:Fixed
-
У меня после нескольких попыток выделения скрипт начинает жутко тормозить (именно js) Попробуйте повыделять "пустоту", то есть не захватывая узлов. Не знаю, имеет ли это значение.
Reported by
vostreltsov
on 2014-04-18 10:58:25 - Status changed:InProgress
-
Account Deleted Теперь тормозить не должно
Reported by
grvlter
on 2014-05-05 16:40:26 - Status changed:Fixed
-
repo owner Выделение прямоугольником работает по прежнему очень странно - сильно хватает влево и совершенно не забирает вправо. Оно что, по концу стрелки реагирует что ли? Проверено на 2-х сайтах...
Reported by
oasychev
on 2014-05-13 15:18:54 - Status changed:InProgress
- Labels added: Priority-High - Labels removed: Priority-Medium -
Account Deleted Приведите пожалуйста пример, желательно скриншот. Я пытался повыделять, и вроде всё нормально.
Reported by
ZluMYO
on 2014-05-16 10:09:21 -
repo owner (|they(\s*'\s*|\s+a)re\s+)colou?rs Скриншот без прямоугольника смысла не имеет.
Reported by
oasychev
on 2014-05-16 13:23:41 -
Account Deleted Вытолкнул изменения связанные с выделением прямоугольником. Во-первых, убрано выделение конкатенации. Во-вторых, теперь для выделения дуги графа (например, для пустоты в альтернативе) нужно чтобы в прямоугольник попала область, которая отстоит от начальной и конечной точек на 15% от длины дуги.
Reported by
ZluMYO
on 2014-05-18 12:24:47 -
repo owner После обновления на edu.vstu.ru с чисткой всех кешей выделение прямоугольником вообще перестало что-либо выделять. Прямоугольник остается и все. Выделение через дерево работает...
Reported by
oasychev
on 2014-05-19 20:52:38 -
Account Deleted Можем ли мы как-то получить доступ к инструментам на edu.vstu.ru и посмотреть самим, что не так? Сегодня проверяли репозиторий Пахомова, у нас работает...
Reported by
grvlter
on 2014-05-20 08:49:31 -
Account Deleted Вытолкнул исправление, которое по идее должно данную ситуацию исправить.
Reported by
ZluMYO
on 2014-05-22 18:28:07 -
repo owner Теперь оно как-то работает, но работает по прежнему странно. а) Так и не удалось выделить квантификатор - выделяется только то, что внутри б) Иногда полностью попавший в прямоугольник узел не выделяется. Один раз словил ситуацию, когда при передвижении мыши при увеличении размера прямоугольника узел терял "полупрозрачность" (я так понимаю означает, что попадет в выделение) а при уменьшении - возвращал, что странно очень.
Reported by
oasychev
on 2014-05-25 22:03:01 -
repo owner Проблемы похоже опять на edu - на том же вопросе. Посмотрите.
Reported by
oasychev
on 2014-05-26 20:50:05 -
Account Deleted хром 35, ошибок нет.
Reported by
TOPT.iiiii
on 2014-05-28 13:14:55 -
Account Deleted Теперь поддерживается разметка SVG как старой так и новой версий.
Reported by
ZluMYO
on 2014-06-01 09:39:35 -
repo owner Поведение стало гораздо предсказуемей, но выделить квантификатор (со старым DOT если что) мне так и не удается - выделяется то, что внутри только. Кто-то может проверить с разными версиями DOT - и отладить?
Reported by
oasychev
on 2014-06-13 22:59:44 -
repo owner Вроде работает. Если что - будут новые issue.
Reported by
oasychev
on 2014-07-10 18:26:13 - Status changed:Done
- Log in to comment
Reported by
oasychev
on 2013-11-25 13:33:16