Fix quadtree find with accessors
This commit is contained in:
Родитель
4e4709ce47
Коммит
743276d0c2
|
@ -5638,7 +5638,7 @@
|
|||
(function find(node, x1, y1, x2, y2) {
|
||||
if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;
|
||||
if (point = node.point) {
|
||||
var point, dx = x - point[0], dy = y - point[1], distance2 = dx * dx + dy * dy;
|
||||
var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;
|
||||
if (distance2 < minDistance2) {
|
||||
var distance = Math.sqrt(minDistance2 = distance2);
|
||||
x0 = x - distance, y0 = y - distance;
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -210,8 +210,8 @@ function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
|
|||
// visit this point
|
||||
if (point = node.point) {
|
||||
var point,
|
||||
dx = x - point[0],
|
||||
dy = y - point[1],
|
||||
dx = x - node.x,
|
||||
dy = y - node.y,
|
||||
distance2 = dx * dx + dy * dy;
|
||||
if (distance2 < minDistance2) {
|
||||
var distance = Math.sqrt(minDistance2 = distance2);
|
||||
|
|
|
@ -47,6 +47,14 @@ suite.addBatch({
|
|||
assert.deepEqual(q.find([7.5, 7.5]), [7, 7]);
|
||||
assert.deepEqual(q.find([.1, 15.9]), [0, 16]);
|
||||
assert.deepEqual(q.find([15.9, 15.9]), [16, 16]);
|
||||
},
|
||||
"can find with accessors": function(q) {
|
||||
q.x(function(d) { return d.x; });
|
||||
q.y(function(d) { return d.y; });
|
||||
|
||||
var point = {x: 0, y: 0, arbitrary: 1};
|
||||
q = q([point]);
|
||||
assert.deepEqual(q.find([0, 0]), point);
|
||||
}
|
||||
},
|
||||
"the quadtree applied directly": {
|
||||
|
|
Загрузка…
Ссылка в новой задаче