[HACKERS] Distance from point to box

2014-07-30 Thread Alexander Korotkov
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

Re: [HACKERS] Distance from point to box

2014-07-30 Thread Fabien COELHO
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.

Re: [HACKERS] Distance from point to box

2014-07-30 Thread Alexander Korotkov
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)

Re: [HACKERS] Distance from point to box

2014-07-30 Thread Fabien COELHO
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

Re: [HACKERS] Distance from point to box

2014-07-30 Thread Alexander Korotkov
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.