Re: Sort a list of lists
Re: Sort a list of lists
- Subject: Re: Sort a list of lists
- From: CYB <email@hidden>
- Date: Thu, 16 Nov 2006 16:59:54 -0600
- Thread-topic: Sort a list of lists
Title: Re: Sort a list of lists
Thanks Andrew, wonderful idea
I’ll go thru this way, but now I have some question that I forgot to ask in my first post
I need to know to what item list belongs the smallest number, in fact to what item list belongs each one
Any ideas?
TIA
--
Carlos Ysunza
Director
SoftRobot Automated Workflows
http://www.softrobot.com.mx
email@hidden
From: Andrew Oliver <email@hidden>
Date: Thu, 16 Nov 2006 14:02:28 -0800
To: CYB <email@hidden>
Cc: applescript-users <email@hidden>
Subject: Re: Sort a list of lists
On Nov 16, 2006, at 1:36 PM, CYB wrote:
Hi everyone,
I have a variable number of objects in a page – for example 4 rectangles- and I need to know which one is the left-top most, (I’m scripting InDesign CS2) so I get the geometric bounds of all this objects and I get a list of lists
My typical list looks like {{5.0, 120.0, 40.0, 169.0}, {10.0, 10.0, 50.0, 59.0}, {70.0, 20.0, 110.0, 69.0}, {70.0, 80.0, 110.0, 128.0}}
So basically I need to compare the first 2 items (y, x) of every list in that main list, in this example the order (Left/Right, clock wise) is
1.- second list, 2.- first list, 3.- third list, 4.- fourth list
I think, at the first moment that it’s pretty simple, but for my disgrace I found that after many hours of try to write an algorithm to to this, I have nothing, :-((
Anyone have something in this way or can someone point me in the right direction?
Your help will be appreciated.
The classic solution to this is to calculate the root mean squares of the co-ordinates and sort those. For example:
given {5.0, 120}, {10.0, 10.0}, {70.0, 20.0} and {70.0, 80.0}
you get (5^2 + 120^2)/2, (10^2 + 10^2)/2, (70^2 + 20^2)/2 and (70^2 + 80^2)/2
which translates to: 7212, 100, 2650, and 5650
>From here it's easy to see which one is mathematically closest to top left, and which one is furthest.
The biggest issue you'll have is objects that have the same RMS value. For example (working on points for now), is {100, 10} closer to the "top left" than {10,100}. Both are equidistant from the corner, but one is more "left" and the other is more "top". Once you have the RMS values you can look back at the originals to choose whether the lower x or y coordinate has priority.
Working out the clockwise orientation from that is a little trickier. Off hand it probably requires polar coordinates and I can't get my mind around those until I have more coffee.
Andrew
:)
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/mailman//archives/applescript-users
This email sent to email@hidden