Я работаю над приложением SVG и теперь хочу, чтобы пользователь изменял размер объекта с помощью перетаскиваемых углов, очень похоже на SVG-edit (http://svg-edit.googlecode.com /svn/trunk/editor/svg-editor.html). Функциональность должна работать следующим образом: пользователь выбирает объект SVG, перетаскивает его на главный «холст» и один раз на «холст», появляются четыре угла снаружи объекта, пользователь может перетаскивать каждый угол очки & перетащите, чтобы увеличить объект. Объекты будут иметь прямоугольную форму и создаваться с использованием путей, не используя функцию SVG «rect». У кого-нибудь есть предложения относительно того, как это должно быть реализовано? Спасибо заранее.изменить размер группы элементов SVG
ответ
Это может быть достигнуто путем переноса элементов, которые вы изменяете размер в элементе g, а затем, применяя преобразование к этому элементу. Давайте рассмотрим простой случай перетаскивания нижнего правого угла. Вам нужно будет сначала определить ограничительную рамку элемента g. Вы можете добавить свои mousedown, mousemove, mouseup события к этому элементу или использовать некоторый элемент-заполнитель (например, прямоугольник), который служит для перетаскивания для перерисовки. Важное замечание здесь состоит в том, что если вы отслеживаете использование маленькой фигуры, плохие вещи обязательно произойдут. Пользователю легко так быстро тащить, что мышь выходит за пределы формы, тем самым отменяя операцию перетаскивания. Чтобы обойти это, я обычно использую прозрачную фигуру поверх всего холста с поворотными событиями. Здесь я регистрирую свои отслеживания мыши. Таким образом, вы можете отслеживать мышь, не беспокоясь о том, что вы выйдете из формы.
Итак, вернемся к изменению размера. Вам нужно будет сравнить свою текущую позицию с новой позицией. Я бы, вероятно, использовал соотношение длины от верхней левой до нижней правой длины, разделенной на длину верхнего левого и нового нижнего правого, которые вы перетаскиваете. Теперь вы можете построить преобразование, которое масштабирует элемент g на эту сумму. Однако здесь все становится немного сложнее, и это может быть связано с трудностями. Сначала вам нужно перевести верхний левый угол в начало, затем масштабировать, а затем перевести начало координат назад. Это даст эффект верхнего левого угла, оставшегося в текущем местоположении, при изменении размера остального содержимого элемента g.
НТН, Кевин
- 1. Как изменить размер SVG?
- 2. Изменить размер SVG?
- 3. Изменить SVG элемент группы центр
- 4. Как правильно изменить размер svg?
- 5. Как изменить размер клипа SVG?
- 6. Как изменить размер анимации SVG?
- 7. Как изменить размер полигона в svg?
- 8. d3js Перемещение элементов SVG внутри преобразующей группы
- 9. изменить размеры элементов svg, используя масштабное свойство
- 10. Как изменить размер кнопки, содержащей изображение svg
- 11. Невозможно создать группы SVG
- 12. Центрирование группы элементов управления
- 13. Невозможно изменить размер дочерних элементов?
- 14. Изменить размер полимерных элементов (флажок)
- 15. Как изменить размер svg с помощью CSS?
- 16. изменить размер SVG, чтобы соответствовать размеру контейнера
- 17. HTML - Corp и изменить размер SVG изображения
- 18. Обновить SVG координаты в окне изменить размер
- 19. как изменить размер SVG с Imagick/ImageMagick
- 20. изменить размер и перетащить группу элемента SVG
- 21. Изменить размер шрифта SVG с помощью мыши
- 22. Как изменить размер svg из спрайта
- 23. Как изменить размер текста в svg динамически?
- 24. Изменить размер изображения svg в командной строке
- 25. Изменить порядок элементов SVG с помощью javascript
- 26. Как изменить размер входной группы-addon
- 27. Bootstrap - изменить форму группы css @media размер
- 28. Как изменить размер группы в дизайнере ленты?
- 29. Граница для элементов svg
- 30. Размер SVG с бутстрапом
Какой-редактор SVG? – eumiro
NetBeans IDE 6.9 –
Обновите свой вопрос с помощью этой информации (я отметнил его для вас) – eumiro