
Content count
622 
Joined

Last visited

Days Won
33
jbante last won the day on September 18
jbante had the most liked content!
Community Reputation
141 ExcellentAbout jbante

Rank
member
Profile Information

Gender
Not Telling

Location
California
FileMaker Experience

Skill Level
Expert

FM Application
16 Advanced
Platform Environment

OS Platform
FileMaker Partner

Certification
7
9
10
11
12
13
14
15

Circumference of an Oval
jbante replied to Mr. Ignoramus's topic in Calculation Engine (Define Fields)
I believe the moderators of this forum prefer that transactional conversations happen in private messages. Aside from that, I'm not sure exactly what you mean by "teach me the function". Do you want to understand how the math works? I think that's much more than a 12 hour conversation, and there's plenty of other information linked to from the Wikipedia page for ellipses that can steer you in the right direction. Do you want a script version of the same thing? That could be done pretty easily, but this is a use where I think a custom function is a less clumsy solution to use. (I'll grant you that my implementation might look more complicated than absolutely necessary, but that's my pattern when I don't want any helper functions to depend on or extra parameters that are only there to pass information between recursions.) 
Circumference of an Oval
jbante replied to Mr. Ignoramus's topic in Calculation Engine (Define Fields)
Try this custom function for a reasonably exact calculation. 
Circumference of an Oval
jbante replied to Mr. Ignoramus's topic in Calculation Engine (Define Fields)
It looks like the calculation you found is approximating the circumference of an ellipse as the circumference of a circle with radius halfway between the circles that inscribe and circumscribe the ellipse. You could calculate upper and lower bounds as the circumferences of those 2 circles. The Wikipedia page includes some more bounds. Combining them in FileMaker might look like: lowerBound = Max ( Pi * ( width + height ) ; 4 * Sqrt ( width^2 + height^2 ) ) upperBound = Min ( 2 * Pi * Max ( width ; height ) ; 4 * ( width + height ) ; Pi * Sqrt ( 2 * ( width^2 + height^2 ) ) ) If those numbers are close enough for your comfort, then there you go. I imagine they might still be too loose with 500,000 pieces to cut. I thought the exact calculation looks a little fun to me, so I might take a crack at that later. 
jbante started following Quartile Ranks, Circumference of an Oval, combinations or ... and and 2 others

Circumference of an Oval
jbante replied to Mr. Ignoramus's topic in Calculation Engine (Define Fields)
Calculating the circumference of an ellipse is complicated. Any simple formula you find is likely to be an approximation, so it's natural to expect that they won't all get the same answer. How close is close enough for your app? 
What you're describing is the knapsack problem. The Wikipedia pages includes descriptions of several approaches to solving it for you to consider.

Google map, select records addresses from a delimited polygon bounds.
jbante replied to Franco Pagano's topic in Calculation Engine (Define Fields)
I made a solution once that works in the other direction: given a point, find which polygons in the database contain it. There are a couple ways to do this, but the way that executed fastest was to decompose each polygon into geohashes covering the same region in advance, then calculate the geohash for the point of interest and perform an exact match find on the geohash. (When it's important to keep the database small, you can decompose regions into differentprecision geohashes depending on what's necessary to cover the shape of the region, then finding a region for a point consists of attempting finds at multiple resolutions until it gets a match.) This assumed that the regions of interest are already in the database. But you're asking for a solution to a different problem: given a polygon, find which points in the database are contained by it. Start by looking at the "point in polygon" problem. I specifically recommend starting with the winding number algorithm. That's fine if you already have a small number of records to check. If you have more than a handful of points in your database, it will probably be unacceptably slow to check every single one. You could solve that by doing a find for points within the bounding box of the polygon, then checking each record in that constrained set with the winding number algorithm. This blog post I wrote a few years ago discusses how to find within a bounding box. If it's worth it to you to experiment with more complication options to achieve better speed, look into the point location problem, and trapezoidal decomposition in particular. The idea is that you might decompose your polygons into strictly vertical slabs, perform finds for the bounding boxes of the slabs, and check if the found points are actually in those slabs (which is much faster than the general point in polygon solutions because we can take advantage of the known shape of the slabs). This gets gnarly very fast, especially when you start handling nonconvex polygons. You also don't want to be performing a huge number of numerical range finds in a single find request. FileMaker starts to choke on the complexity of the request. Extending a found set for each slab would probably work better. 
While you're editing the custom function, you need to set what the parameters are before the calculation will recognize the "bytes" and "precision" tokens, which would be undefined otherwise.

Try this custom function.

Then use stored number fields instead of calculation fields, and set each quartile field in a script that does separate sorts before setting each quartile field. A script also potentially makes it easier to handle ties, to address LaRetta's point.

IOException when reading container data
jbante replied to jbante's topic in ScriptMaster by 360 Works
Thank you for the update! 13 replies

IOException when reading container data
jbante replied to jbante's topic in ScriptMaster by 360 Works
Is there an estimate of when a production version of a new build might be available? Weeks? Months? 13 replies

If you sort the records by contribution, you can set the quartile for each record with the calculation: Ceiling ( Get ( RecordNumber ) / Get ( FoundCount ) * 4 )

IOException when reading container data
jbante replied to jbante's topic in ScriptMaster by 360 Works
The 5.06 build goes back to working normally in my tests on Mac & Windows clients. I'm reluctant to put this on the server without knowing how productionready this build is. 13 replies

IOException when reading container data
jbante replied to jbante's topic in ScriptMaster by 360 Works
Now running ScriptMaster v5.052, I get the exact same error in all three contexts (Mac client, Windows client, Windows server). 13 replies

IOException when reading container data
jbante replied to jbante's topic in ScriptMaster by 360 Works
Is there a ScriptMaster version "5.052"? I just downloaded it fresh from 360Works yesterday, and it's only 5.05 (no 2). 13 replies