Rather than have a treshold in transitions, we now clamp the easing functions. This guarantees that when the transition ends, the tweens will be called with t=1, and produce clean output values. Previously, that was not the case for certain easing functions, such as exp-out and elastic.
In IE9, using style("width", 960) fails with "SCRIPT87: invalid argument" because strictly speaking, non-zero CSS widths need a unit e.g. "960px". In SVG, we normally use width/height attributes via attr() instead of the CSS equivalents.
IE9 does not string-coerce values, instead throwing an error. We now wrap IE9's implementation to force string coercion. While it would be simpler to turn on string-coercion for all browsers inside D3's style operator, this approach avoids penalizing standards-compliant browsers. This commit also moves language-compatibility code to a separate directory, and deletes the obsolete Object.create polyfill, which is no longer needed by D3.
Previously, we were modifying the node's x & y position as we were computing the charge forces. Unfortunately, this causes drift because those positions are subsequently used to compute other forces. Now we modify the node's previous position in the opposite direction, which has the same ultimate effect but improves the stability of the calculation. This commit also optimizes the force layout such that gravity and charge forces are not calculated if the corresponding constants are zero.
Can be used to generate great circle paths. Similar to R's geosphere.gcIntermediate (in which I discovered a bug, while writing the test case for this!) Includes d3.geo.greatcircle().distance for computing the shortest geo path distance using the Haversine formula. For a tutorial on using great circles, see: http://flowingdata.com/2011/05/11/how-to-map-connections-with-great-circles/
There was a bug in the previous fix to increase the stability of link relaxation; the strength of a link would decrease relative to the link degree of the connected nodes. Instead of decreasing link strength, we should instead bias the relaxation so that the lighter node moves more than the heavier node, while preserving the strength of the link.