(self, node1, node2)
| 635 | return dx, dy, sqrt(d2), d2 |
| 636 | |
| 637 | def _repulse(self, node1, node2): |
| 638 | # Updates Node.force with the repulsive force. |
| 639 | dx, dy, d, d2 = self._distance(node1, node2) |
| 640 | if d < self.repulsion: |
| 641 | f = self.k**2 / d2 |
| 642 | node2.force.x += f * dx |
| 643 | node2.force.y += f * dy |
| 644 | node1.force.x -= f * dx |
| 645 | node1.force.y -= f * dy |
| 646 | |
| 647 | def _attract(self, node1, node2, weight=0, length=1.0): |
| 648 | # Updates Node.force with the attractive edge force. |