On 2/16/2021 2:46 PM, Alex Tweedly via use-livecode wrote:
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.


The actual application is for a product my company Researchware produces called HyperRESEARCH for performing qualitative data analysis. Researchers can take unstructured content (text files, word documents, PDFs, images, audio, video, etc.) and make selection and apply a "code" or label to the selection and perform various analytics.

In this specific case there is an interest in generating the following "report". If I have coded some rectangular area of an image file with the code "A", report on what other of my many codes on that image file are "within" X pixels of my code A and list those codes. So the researcher would select code "A" and a range, like 50px, and get a list of codes B, E, F, and G which either overlap with A or are within 50px. If they change the distance to 200px, then maybe the report returns codes B, E, F, G, H, I  J, K, L, M, N, and Z.

The report generator is not working with graphic objects (actual LC rects, but just with lists of stored rectangles (l,t,r,b), so everything is in variables and it is just tacking the rect of A and comparing it to the remaining N-1 rects in the list of codes for that image file. So it will always be an N-1 task for each file where N is the number of codes the researcher applied to the content of the file. Worst case would be if they want to see what codes are within X distance of every code on the file which makes it an N(N-1) or N^2-N problem but most researchers would not have very large numbers of iimage codes.


_______________________________________________
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