Tengo nodos en un diseño dirigido por fuerza D3 que están configurados en. fijo = verdadero. Si configuro los valores .x o .y, los nodos no se moverán a su nueva posición.Mover nodos fijos en D3
Aquí es mi función:
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;
}
}
}
}
ACTUALIZACIÓN 1:
Aquí es la función de trabajo basado en los consejos de Jason:
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();
}
Gracias, ahora lo entiendo. Acabo de probar el comportamiento y quería señalar algo que puede despistar a las personas que provienen de los ejemplos predeterminados: necesita cambiar los valores px/py, así como los valores x/y si el nodo se ha movido. Publicaré la función actualizada arriba. – Elijah