Paul - if you need to do this (i.e. find pairs of rects which are too close) for LARGE numbers of rects, I have some code to do this very efficiently (somewhere in an old archive, just ready to translate from C to LC). It uses a 'trailing window horizontal scan' so reduces the complexity/time from N^2 to N log N

Alex.

On 16/02/2021 18:27, Paul Dupuis via use-livecode wrote:
On 2/15/2021 5:53 PM, Paul Dupuis via use-livecode wrote:
This is an Off Topic informal poll of sorts, but related to LiveCode as I am writing a LiveCode expression to determine if 2 arbitrary rectangles (r1,r2) are with some distance d (in px) of one another. In considering this problem, the questions comes up: What is meant by rectangles being within a distance d of one another. What is the 'd' measured from?

center to center? Easiest is many ways, but I don't think this is what most people would think of.

adjacent edge to adjacent edge? This is harder (I think), but I think this is what more people intuitively think of. To me, implicit in the visual concept of 2 rects being within some distance of one another is that they are NOT overlapping, but that some gap exists between the nearest adjacent edges?

Something else? What does 2 rects  being 'within' d pixels of one another mean to you, if not one of the two above options?

Maybe there is a exact mathematical definition of what 2 rectangles being within distance d of one another is, but, if there is, I am unfamiliar with it.


Okay, Poll Closed!

Thank you everyone. I think the responses (informal as this is) confirms the majority fo people think of distance between 2 rectangles as the distance between nearest edges or vertices which is the same as saying the *smallest* distance between any two points in the rects (mathematically)

I appreciate all the responses! (and the links and code examples!)

-- Paul

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to