This commit is contained in:
Jason Davies 2012-09-26 14:16:03 +01:00
Родитель c7284d7dc3
Коммит 9399591f9a
3 изменённых файлов: 19 добавлений и 34 удалений

12
d3.v2.js поставляемый
Просмотреть файл

@ -2032,17 +2032,9 @@
} }
function resample(context) { function resample(context) {
function lineTo(x0, y0, x, y, λ0, φ0, λ, φ, depth) { function lineTo(x0, y0, x, y, λ0, φ0, λ, φ, depth) {
var dx, dy, λ1, φ1; var dx, dy;
if (depth && (dx = x - x0) * dx + (dy = y - y0) * dy > δ2) { if (depth && (dx = x - x0) * dx + (dy = y - y0) * dy > δ2) {
if (Math.abs(φ0 - φ) < ε && Math.abs(Math.abs(φ) - π / 2) < ε) { var sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ = Math.sin(φ), cosφ = Math.cos(φ), cosΩ = sinφ0 * sinφ + cosφ0 * cosφ * Math.cos(λ - λ0), k = 1 / (Math.SQRT2 * Math.sqrt(1 + cosΩ)), x1 = k * cosφ0 * Math.cos(λ0) + k * cosφ * Math.cos(λ), y1 = k * cosφ0 * Math.sin(λ0) + k * cosφ * Math.sin(λ), z1 = k * sinφ0 + k * sinφ, λ1 = Math.abs(y1) < ε ? (λ0 + λ) / 2 : Math.atan2(y1, x1), φ1 = Math.asin(Math.max(-1, Math.min(1, z1))), point = projectPoint(λ1, φ1);
λ1 = (λ0 + λ) / 2;
φ1 = φ;
} else {
var sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ = Math.sin(φ), cosφ = Math.cos(φ), cosΩ = sinφ0 * sinφ + cosφ0 * cosφ * Math.cos(λ - λ0), k = 1 / (Math.SQRT2 * Math.sqrt(1 + cosΩ)), x1 = k * cosφ0 * Math.cos(λ0) + k * cosφ * Math.cos(λ), y1 = k * cosφ0 * Math.sin(λ0) + k * cosφ * Math.sin(λ), z1 = k * sinφ0 + k * sinφ;
λ1 = Math.abs(y1) < ε ? (λ0 + λ) / 2 : Math.atan2(y1, x1);
φ1 = Math.asin(Math.max(-1, Math.min(1, z1)));
}
var point = projectPoint(λ1, φ1);
lineTo(x0, y0, x0 = point[0], y0 = point[1], λ0, φ0, λ1, φ1, --depth); lineTo(x0, y0, x0 = point[0], y0 = point[1], λ0, φ0, λ1, φ1, --depth);
lineTo(x0, y0, x, y, λ1, φ1, λ, φ, depth); lineTo(x0, y0, x, y, λ1, φ1, λ, φ, depth);
} else context.lineTo(x, y); } else context.lineTo(x, y);

8
d3.v2.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -133,14 +133,8 @@ function d3_geo_projectionMutator(projectAt) {
function lineTo(x0, y0, x, y, λ0, φ0, λ, φ, depth) { function lineTo(x0, y0, x, y, λ0, φ0, λ, φ, depth) {
var dx, var dx,
dy, dy;
λ1,
φ1;
if (depth && (dx = x - x0) * dx + (dy = y - y0) * dy > δ2) { if (depth && (dx = x - x0) * dx + (dy = y - y0) * dy > δ2) {
if (Math.abs(φ0 - φ) < ε && Math.abs(Math.abs(φ) - π / 2) < ε) {
λ1 = (λ0 + λ) / 2;
φ1 = φ;
} else {
var sinφ0 = Math.sin(φ0), var sinφ0 = Math.sin(φ0),
cosφ0 = Math.cos(φ0), cosφ0 = Math.cos(φ0),
sinφ = Math.sin(φ), sinφ = Math.sin(φ),
@ -149,11 +143,10 @@ function d3_geo_projectionMutator(projectAt) {
k = 1 / (Math.SQRT2 * Math.sqrt(1 + cosΩ)), k = 1 / (Math.SQRT2 * Math.sqrt(1 + cosΩ)),
x1 = k * cosφ0 * Math.cos(λ0) + k * cosφ * Math.cos(λ), x1 = k * cosφ0 * Math.cos(λ0) + k * cosφ * Math.cos(λ),
y1 = k * cosφ0 * Math.sin(λ0) + k * cosφ * Math.sin(λ), y1 = k * cosφ0 * Math.sin(λ0) + k * cosφ * Math.sin(λ),
z1 = k * sinφ0 + k * sinφ; z1 = k * sinφ0 + k * sinφ,
λ1 = Math.abs(y1) < ε ? (λ0 + λ) / 2 : Math.atan2(y1, x1); λ1 = Math.abs(y1) < ε ? (λ0 + λ) / 2 : Math.atan2(y1, x1),
φ1 = Math.asin(Math.max(-1, Math.min(1, z1))); φ1 = Math.asin(Math.max(-1, Math.min(1, z1))),
} point = projectPoint(λ1, φ1);
var point = projectPoint(λ1, φ1);
lineTo(x0, y0, x0 = point[0], y0 = point[1], λ0, φ0, λ1, φ1, --depth); lineTo(x0, y0, x0 = point[0], y0 = point[1], λ0, φ0, λ1, φ1, --depth);
lineTo(x0, y0, x, y, λ1, φ1, λ, φ, depth); lineTo(x0, y0, x, y, λ1, φ1, λ, φ, depth);
} else context.lineTo(x, y); } else context.lineTo(x, y);