У меня есть узлы в макете с принудительной настройкой D3, на которые установлены. исправлено = true. Если я установил значения .x или .y, сами узлы не переместятся в их новую позицию.Перемещение фиксированных узлов в D3
Вот моя функция:
function fixNode(idArray, locationX, locationY) {
for (x = 0; x < idArray.length; x++) {
for (y = 0; y < nodes.length; y++) {
if (nodes[y].id == idArray[x]) {
nodes[y].fixed = true;
nodes[y].x = 50;
nodes[y].y = 50;
break;
}
}
}
}
UPDATE 1:
Вот рабочая функция, основанная на совете Джейсона:
function fixNode(idArray, locationX, locationY) {
for (x = 0; x < idArray.length; x++) {
for (y = 0; y < nodes.length; y++) {
if (nodes[y].id == idArray[x]) {
nodes[y].fixed = true;
nodes[y].x = 50;
nodes[y].y = 50;
nodes[y].px = 50;
nodes[y].py = 50;
break;
}
}
}
tick();
}
Спасибо, теперь я понимаю. Я просто проверял поведение и хотел указать на то, что может отбросить людей, которые приходят из примеров по умолчанию: вам нужно изменить значения px/py, а также значения x/y, если узел перемещается. Я опубликую обновленную функцию выше. – Elijah