Hackers,
while reading code written by my GSoC student for knn-spgist I faced many
questions about calculation distance from point to box.
1) dist_pb calls close_pb which calls on_pb, dist_ps_internal, close_ps and
so on. So, it's very complex way to calculate very simple value. I see this
way
double dx = 0.0, dy = 0.0;
if (point-x box-low.x)
dx = box-low.x - point-x;
if (point-x box-high.x)
dx = point-x - box-high.x;
if (point-y box-low.y)
dy = box-low.y - point-y;
if (point-y box-high.y)
dy = point-y - box-high.y;
return HYPOT(dx, dy);
I feel myself quite tangled.
On Wed, Jul 30, 2014 at 4:06 PM, Fabien COELHO coe...@cri.ensmp.fr wrote:
double dx = 0.0, dy = 0.0;
if (point-x box-low.x)
dx = box-low.x - point-x;
if (point-x box-high.x)
dx = point-x - box-high.x;
if (point-y box-low.y)
dy = box-low.y - point-y;
if (point-y box-high.y)
ISTM that you miss the projection on the segment if dx=0 or dy=0.
I don't need to find projection itself, I need only distance. When dx = 0
then nearest point is on horizontal line of box, so distance to it is dy.
Same when dy = 0. When both of them are 0 then point is in the box.
Indeed. I
On Wed, Jul 30, 2014 at 7:26 PM, Fabien COELHO coe...@cri.ensmp.fr wrote:
ISTM that you miss the projection on the segment if dx=0 or dy=0.
I don't need to find projection itself, I need only distance. When dx = 0
then nearest point is on horizontal line of box, so distance to it is dy.