0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
1 | |
В каком направлении копать, чтобы сделать это?22.01.2020, 09:48. Показов 1944. Ответов 16
Метки нет (Все метки)
0
|
22.01.2020, 09:48 | |
Ответы с готовыми решениями:
16
Дали задание, понятия не имею куда копать. Куда копать и в каком направлении? подскажите, в каком направлении копать... СМА Samsung H1245 что за код ошибки?, в каком направлении копать Сделать чтобы в зависимости от выбранного положения программа понимала в каком направлении нужно включать электромотор |
22.01.2020, 15:22 | 2 | |||||
SVG с подобными вещами неплохо справляется. Маленький пример
1
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
22.01.2020, 19:10 [ТС] | 3 |
а как сделать передвижение?
Добавлено через 38 минут Где можно найти гайд по svg?
0
|
dev - investigator
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|
23.01.2020, 02:00 | 4 |
diadiavova, здравствуй
Eclectoi, https://developer.mozilla.org/en-US/docs/Web/SVG https://developer.mozilla.org/... _with_SMIL https://www.w3.org/TR/REC-smil/ https://www.w3.org/TR/SVG/animate.html
1
|
23.01.2020, 02:11 | 5 |
Что значит передвижение? Поменять координаты программно, двигать что-то мышкой, анимировать движение или еще что-то?
Да собственно гуглится все довольно легко. Но если нужно какой-то систематический курс, то можно на интуите пройти
НОУ ИНТУИТ | Масштабируемая векторная графика | Информация Сейчас может уже что-то и получше есть, но курс вполне актуальный. Детали формата ищи в спецификации Scalable Vector Graphics (SVG) 1.1 (Second Edition) Поиск по конкретным фичам тоже дает много полезного. Вот еще SVG - учебное руководство - SVG | MDN Добавлено через 51 секунду
1
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
23.01.2020, 05:16 [ТС] | 6 |
Надо сделать чтобы по клике на кнопку создавалась привязанная такая же кнопка, и уже вторую кнопку можно двигать. Не пойму как сделать, хоть убейте
0
|
23.01.2020, 13:14 | 7 | |||||
Сообщение было отмечено Eclectoi как решение
Решение
Так это вопрос не по SVG, а скорее по работе с DOM. При клике нужно программно создать все элементы из которых кнопка состоит, добавить их в документ, разместить где надо и привязать обработчики событий, с помощью которых объекты можно двигать мышкой. Там есть нюансы, например для создания элементов SVG нужно использовать не createElement, а createElementNS, передавая ей помимо имени элемента еще пространство имен свг, ну и тому подобные вещи там имеют место, но в общем и целом при наличии понимания процесса работы с DOM - разобраться несложно.
Добавлено через 1 час 59 минут Eclectoi, я тут немного пошаманил, чтобы тебе было понятно по крайней мере как действовать с теми элементами, работа с которыми отличается от работы с обычными хтмл-элементами. Собственно по поводу того, как двигать элементы мышкой вот тут есть статья Draggable SVG elements Но тут есть небольшая проблема: не смотря на то, что принцип перемещения элементов тут описан, могут возникнуть проблемы с некоторыми свг-элементами. Например, элемент g , используемый для группировки других элементов, не подчиняется обычным правилам, ну там стилям и т.п. Можно, конечно, поколдовать и что-то найти, но, тем не менее, если посмотреть как вопросы решают люди, например здесьposition - SVG Positioning - Stack Overflow d3.js - How to move elements along with svg group - Stack Overflow то они все в один голос используют для этого трансформации. Поэтому я набросал еще примерчик, где при нажатии на основную кнопку появится еще одна внизу, а уже при нажатии на нее, она будет перемещаться вниз-вправо на 10 пикселей в каждом направлении. Соединить это с логикой перетягивания мышкой - это уже дело техники.
2
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
23.01.2020, 20:01 [ТС] | 8 |
на самом деле выглядит очень complicated, но, с кучей материала, думаю, разберусь. Спасибо вам!
0
|
23.01.2020, 21:20 | 9 | |||||
Да собственно в статье по дрэггэйблу есть все готовые коды. Вот взял оттуда и прилепил к своему примеру. Теперь по кнопкам надо не кликать, а тянуть их мышью. Просто в статье все подробно объясняется, поэтому прочитать ее все равно стоит.
1
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
24.01.2020, 06:01 [ТС] | 10 |
0
|
24.01.2020, 08:43 | 11 | |||||
Что-то менял, удалял, в результате выложил не ту версию, которая работала. Бывает )) Сейчас вроде та ))
2
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
||||||
27.01.2020, 19:45 [ТС] | 12 | |||||
У меня есть код кнопки базы (огромное спасибо diadiavova), прочитал статьи, просмотрел гугл - что то ничего не нашел, как делать следующее задание. акаксделоть...
0
|
28.01.2020, 15:57 | 13 | ||||||||||
В гуглах обычно типовые задачи ищут. Здесь нужно было спрашивать, как объединить элементы, чтобы можно было с ними работать как с единым целым. Но на этот вопрос я, в принципе, уже ответил. Элементы нужно объединить в группу и работать с группой. В код обработчиков событий надо внести изменения так, чтобы в качестве selectedElement выбиралась именно группа.
В принципе для упаковки нескольких элементов в группу можно использовать примерно следующий код
Добавлено через 20 минут Наверно добавлять группу лучше как-то так
1
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
28.01.2020, 19:46 [ТС] | 14 |
0
|
29.01.2020, 13:01 | 15 | ||||||||||
Это всего лишь вспомогательная функция, с помощью которой можно объединить несколько объектов в группу. Просто собираешь объекты в массив и передаешь этой функции. Ее немного надо бы доделать, например добавить группе класс. Попытаюсь объяснить для чего это надо, раз уж прежних объяснений не хватило.
Вот взять, к примеру, тот объект, который ты называешь кнопкой. Что он из себя представляет? Выглядит он как круг, но на самом деле это составной объект, состоящий из четырех секторов. Что нам позволяет работать с ним как с единым объектом? То, что мы объединили все его компоненты в группу, разместив их в элементе <g></g> . Благодаря этому обстоятельству мы можем задавать трансформации всей группе и элементы группы будут действовать как одно целое. Теперь к тому, что нужно тебе сделать на данном этапе. Ты хочешь, чтобы эти кнопки были каким-то образом связаны, да еще и чтобы связь была визуализирована с помощью линии. Мало того, тебе нужно чтобы это не только выглядело как связь, но и в некоторых ситуациях все эти элементы вели себя как единое целое. Ну, собственно, решение тут то же самое. Объединяешь две кнопки и линию в одну группу, то есть упаковываешь их в элемент g и дальше, когда нужно перемещать все, ты опять-таки воздействуешь уже не на каждый элемент, а на всю группу. Функция, которую я показал выше, поможет тебе упаковать несколько объектов в одну группу. Возможно там еще неплохо было бы в конце добавить
Добавлено через 29 минут Хотя сейчас посмотрел, видимо немного неправильно понял задачу. Когда кнопка движется, то за ней следует только связь, а вторая кнопка на месте. Но тут решение простое: в те блоки кода, которые передвигают группу, нужно добавить логику перемещения линий.
Однако от необходимости группировки это не освобождает. Хотя бы для того, чтобы при движении можно был определить кнопку и линию, с которой связана та, что должна двигаться.
1
|
0 / 0 / 0
Регистрация: 06.12.2019
Сообщений: 83
|
|
29.01.2020, 21:10 [ТС] | 16 |
0
|
29.01.2020, 21:17 | 17 |
Дык это как раз проще пареной репы. У нее есть атрибуты x1, x2, y1 и y2. С их помощью устанавливаются начало и конец линии. Естественно надо просчитать это все, в зависимости от расположения самих кнопок.
Да, и насчет групп еще, пожалуй, добавлю кое что. Если кнопки могут быть сгруппированы вот только так как показано (по две за раз), то группа вполне подойдет для того, чтобы с ее помощью определять какие кнопки связаны. Но если связей будет больше, то при таком подходе потребуется один объект сразу в несколько групп размещать, а это, как ты понимаешь, невозможно. Так что для этих целей может группа и не самый удачный выбор. Ну это так, к слову.
1
|
29.01.2020, 21:17 | |
29.01.2020, 21:17 | |
Помогаю со студенческими работами здесь
17
В каком направлении должен бежать человек, чтобы оказаться в какой-либо точке шоссе одновременно с автобусом или раньше его? С какой скоростью и в каком направлении должен ехать автомобиль вдоль экватора, чтобы спутник постоянно "висел" над ним Сделать чтобы объекты рисовались так чтобы мы могли наблюдать это В каком направлении двигаться Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |