Note that there are some explanatory texts on larger screens.

plurals
  1. POC# algorithm conundrum - bin packing
    primarykey
    data
    text
    <p>I am trying to make a FNF algorithm for 2d bin packing, and when I call the method I get the wrong results. Please help, I can't find the problem.</p> <pre><code>private void FFF() { int xmax = 0; int movex = 0; int movey = 0; int maxH = RectBin.Height; int maxW = RectBin.Width; List&lt;Rectangle&gt; rectsToDraw = new List&lt;Rectangle&gt;(); for (int i = 0; i &lt; Shapes.Count; i++) { int height = Shapes[i].Height; int width = Shapes[i].Width; if ((movey + height) &lt;= maxH) { rectsToDraw.Add(new Rectangle(movex, movey, width, height)); movey = movey + height; if (xmax &lt; movex + width) { xmax = movex + width; } } else if ((xmax + width) &lt;= maxW) { movex = xmax; rectsToDraw.Add(new Rectangle(movex, 0, width, height)); movey = height; xmax = movex + width; } else { Debug.Write("Message1"); break; } } for (int j = 0; j &lt; rectsToDraw.Count; j++) { Debug.Write(rectsToDraw[0]); } r2d = rectsToDraw; } </code></pre> <p>rectBin is a public rectangle (0,0, 300, 190), and Shapes[] is a public rectangle list. I sort Shapes before using it here by:</p> <pre><code>private void button9_Click(object sender, EventArgs e) { Shapes.Sort((x,y) =&gt; ((y.Width.CompareTo(x.Width)))); } </code></pre> <p>When I start FNF in the debug console I get repeating list items and message1 (first one in shapes, which shouldn't repeat), when i should get 14 items.</p> <p>Just to be clear, I am not looking for an algorithm, just someone to tell me where I made a mistake so that the first item in oblici gets coppyed 4 times into rectsToDraw and the loop ends...</p> <p>Input: {X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=41,Height=47}{X=0,Y=0,Width=38,Height=47}{X=0,Y=0,Width=33,Height=45}{X=0,Y=0,Width=22,Height=39}{X=0,Y=0,Width=0,Height=0}</p> <p>Output: {X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=41,Height=47}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=41,Height=47}{X=0,Y=0,Width=38,Height=47}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=41,Height=47}{X=0,Y=0,Width=38,Height=47}{X=0,Y=0,Width=33,Height=45}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=41,Height=47}{X=0,Y=0,Width=38,Height=47}{X=0,Y=0,Width=33,Height=45}{X=0,Y=0,Width=22,Height=39}{X=0,Y=0,Width=231,Height=66}{X=0,Y=0,Width=167,Height=61}{X=0,Y=0,Width=151,Height=47}{X=0,Y=0,Width=130,Height=40}{X=0,Y=0,Width=119,Height=39}{X=0,Y=0,Width=115,Height=52}{X=0,Y=0,Width=72,Height=53}{X=0,Y=0,Width=58,Height=46}{X=0,Y=0,Width=47,Height=32}{X=0,Y=0,Width=41,Height=47}{X=0,Y=0,Width=38,Height=47}{X=0,Y=0,Width=33,Height=45}{X=0,Y=0,Width=22,Height=39}{X=0,Y=0,Width=0,Height=0}</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload