Sorry wrong link, I'm sure there is a component on the site somewhere that
does what you need (I think) ;)

On 5/9/06, Mick G <[EMAIL PROTECTED]> wrote:

Handy TILE component...
http://chq.emehmedovic.com/?id=2




On 5/9/06, Bernard Poulin < [EMAIL PROTECTED]> wrote:
>
> Wow!
> I just tried your algorithm with my previous example numbers and it does
>
> output the correct square size (100) - also, internally it has the right
> number of columns/lines: e.g. 3x4 (p=3, q=4)  As for performance, it
> took 6
> iterations: Since the output was 3x4, the number of iterations was (3 +
> 4 -
> 1) = 6. (it started at 1x1 and did 6 iterations: something like:  1x1,
> 1x2,
> 2x2, 2x3, 3x3, 3x4)
>
> For N = 100, the number of iteration depends on the ratio: it could be
> anywhere from 19 (10x10-1) to 100 iterations (worst case happens if the
> output is a single line or a single column).  So that would make N
> iterations (in worst cases) and ~2*SQRT(N)-1 best case.
>
> I took the liberty of optimizing the method a little bit and renaming a
> few
> internal variables to my personal liking. ;-)  -- I did not do any "real
>
> life" testing on this. But it seems to work on paper.
>
> /**
> * computes the largest N square size (and layout) that can fit an area
> (width,height).
> *
> * @return an Object containing 'squareSize' and the number of 'cols' and
>
> 'rows'.
> *
> * 98% of the credits goes to Danny Kodicek
> */
> function computeLargestSquareSizeAndLayout(width:Number, height:Number,
> Nsquares:Number): Object
> {
>    var cols:Number = 1;
>    var rows:Number = 1;
>    var swidth:Number = width;
>    var sheight:Number = height;
>    var next_swidth:Number = width/(cols+1);
>    var next_sheight:Number = height/(rows+1);
>    while (true)
>    {
>         if (cols*rows >= Nsquares)
>         {
>             var squareSize:Number = Math.min(swidth, sheight);
>             return { squareSize:squareSize, cols:cols, rows:rows };
>         }
>
>         if (next_swidth > next_sheight)
>         {
>             cols++;
>             swidth = next_swidth;
>             next_swidth = width/(cols+1);
>         }
>         else
>         {
>             rows++;
>             sheight = next_sheight;
>             next_sheight = height/(rows+1);
>        }
>     }
> }
>
>
> B.
>
> 2006/5/8, Danny Kodicek <[EMAIL PROTECTED]>:
> >
> > >Danny:  I do not understand your algorithm - could you shed some more
>
> > (high-level) light on what it is doing?
> >
> > Sure. The idea is that the optimal size will always be an exact
> fraction
> > of
> > either the width or the height. So what we do is drop down by
> multiples of
> > these until we get to the first size that will contain N or more
> squares.
> > At
> > any particular width, we keep track of the two 'next-smallest' widths
> and
> > drop down to the largest of these. Run through the algorithm with a
> few
> > sample numbers and it should make sense.
> >
> > It may be that there's a more algebraic approach. The problem is,
> though,
> > that there is no simple relationship between floor(x), floor(y) and
> > floor(xy), which would be needed to come up with any truly useful
> > solution.
> > In the end, it turns into quite a complex optimisation problem, and
> given
> > that the brute force algorithm is actually pretty fast, it hardly
> seems
> > worth the effort :)
> >
> > Danny
> >
> > _______________________________________________
> > Flashcoders@chattyfig.figleaf.com
> > To change your subscription options or search the archive:
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
> > Brought to you by Fig Leaf Software
> > Premier Authorized Adobe Consulting and Training
> > http://www.figleaf.com
> > http://training.figleaf.com
> >
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>


_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to