jerry800416 / 3D-bin-packing

3D Bin Packing improvements based on https://github.com/enzoruiz/3dbinpacking
MIT License
158 stars 44 forks source link

Float issue still exist #13

Closed Zippowxk closed 1 year ago

Zippowxk commented 1 year ago

Run example4.py

Get this result below,

image

BTW: This is a great work what you have done

jerry800416 commented 1 year ago

Hi @Zippowxk ,

my english is limited, so I answered in Chinese.

這個item 是Server 24,你可以在輸出看到這個item的詳細信息(如下圖)

image

藉由以上信息,我們可以推算出這個item最底下的平面的四個頂點分別是

(560,15,180),
(590,15,180),
(560,115,180),
(590,115,180)

然後我們再看 Server 23,並且用同樣方式推算,可以得出Server 23 最上面的平面的四個頂點分別是

(500,80,180),
(570,80,180),
(500,180,180),
(570,180,180)

兩者的高是相同的,所以可以不看,我們把這兩組座標映射到平面,就會發現有重疊的地方,這就是Server 24 的支撐面,所以實際上,它並不是浮在半空中的,儘管看起來很像。

你也可以把輸出的figure 轉個角度,就會發現實際上是有支撐的 Figure_1

Zippowxk commented 1 year ago

@jerry800416 十分感謝你的解答

如果假設貨物的密度分布是均勻的,換一個角度來看,這件貨物的質心應該是超出了接觸面,如圖: image

我希望能夠優化這部分算法,但是我沒有找到應該在哪裡增加這個邏輯,是Class Bin中的putItem方法嗎

jerry800416 commented 1 year ago

Hi @Zippowxk , 是的,在這個function 當中,我只考慮了item下方是不是有item,但是沒有判斷下方item是否足以支撐上方item不掉落,若要優化這部分規則,可以參考 #4

jerry800416 commented 1 year ago

Hi @Zippowxk , item 穩定性問題已再最新版修正,詳細請參考Readme