title: D3 forceSimulation and dragging, what is node.fx/node.fy?
body: <p>For d3 force layouts that include drag functionality with d3-drag, it seems that the functions called on each drag event modify <code>d.fx</code>/<code>d.fy</code>, eg:</p>
  
  <pre><code>function dragged(d) {
    d.fx = d3.event.x;
    d.fy = d3.event.y;
  }
  </code></pre>
  
  <p>The drag start event often bases <code>d.fx</code>/<code>d.fy</code> on <code>d.x</code>/<code>d.y</code> while the end event sets <code>d.fx</code>/<code>d.fy</code> to <code>null</code>. </p>
  
  <p>Where does <code>d.fx</code>/<code>d.fy</code> come from and why does it get used on elements that are being dragged? Is this built into d3 or d3-force in some way? Where is it assigned to the element being dragged?</p>