|
5610 | 5610 | } |
5611 | 5611 | }; |
5612 | 5612 | function d3_geo_circleClip(degrees, rotate) { |
5613 | | - var radians = degrees * d3_radians, normal = [ 1, 0, 0 ], center = d3_geo_circleScale(normal, Math.cos(radians)), angle = d3_geo_circleAngle(center), cr = Math.cos(radians), interpolate = d3_geo_circleInterpolate(radians, 6 * d3_radians); |
| 5613 | + var radians = degrees * d3_radians, cr = Math.cos(radians), center = [ cr, 0, 0 ], angle = d3_geo_circleAngle(center), interpolate = d3_geo_circleInterpolate(radians, 6 * d3_radians); |
5614 | 5614 | return { |
5615 | 5615 | point: function(coordinates, context) { |
5616 | 5616 | if (visible(coordinates = rotate(coordinates))) { |
|
5652 | 5652 | } |
5653 | 5653 | function intersect(a, b) { |
5654 | 5654 | var pa = d3_geo_circleCartesian(a, [ 0, 0, 0 ]), pb = d3_geo_circleCartesian(b, [ 0, 0, 0 ]); |
5655 | | - var n1 = [ 1, 0, 0 ], n2 = d3_geo_circleCross(pa, pb), d1 = center[0], d2 = 0, n1n1 = 1, n2n2 = d3_geo_circleDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; |
| 5655 | + var n1 = [ 1, 0, 0 ], n2 = d3_geo_circleCross(pa, pb), n2n2 = d3_geo_circleDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; |
5656 | 5656 | if (!determinant) return a; |
5657 | | - var c1 = (d1 * n2n2 - d2 * n1n2) / determinant, c2 = (d2 * n1n1 - d1 * n1n2) / determinant, n1xn2 = d3_geo_circleCross(n1, n2), A = d3_geo_circleScale(n1, c1), B = d3_geo_circleScale(n2, c2); |
| 5657 | + var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_circleCross(n1, n2), A = d3_geo_circleScale(n1, c1), B = d3_geo_circleScale(n2, c2); |
5658 | 5658 | d3_geo_circleAdd(A, B); |
5659 | 5659 | var u = n1xn2, w = d3_geo_circleDot(A, u), uu = d3_geo_circleDot(u, u), t = Math.sqrt(w * w - uu * (d3_geo_circleDot(A, A) - 1)), q = d3_geo_circleScale(u, (-w - t) / uu); |
5660 | 5660 | d3_geo_circleAdd(q, A); |
|
0 commit comments