如何用最少的有限體積的長方體填充乙個很大的長方體區域?

時間 2021-06-02 05:43:22

1樓:史本人

說句題外話,想要大規模填充方塊的話可以放置乙個迴圈型命令方塊:execute @某人 ~~~ fill 座標~ 座標座標 ~ 座標方塊,這樣可以一次一片的快速填充,面積大的話用起來很快。記得設定成紅石控制以便隨時停止,離得遠的話還要使用常載入區域。

2樓:熊孩子

首先先分解個因數看看:292=2*2*73,102=2*3*17,700=2*2*5*5*7,

然後,因為沒有觀察出「顯然」的能力所以瞎組合一下,可以發現73*25*17=31025似乎很接近32768,所以每次就複製dx=73,dy=17,dz=25的區域即可,共需要4*6*28=672次clone。

當然還可以更少,比如上面的31025和32768顯然有不少的差距,繼續瞎湊可以得到73*26*17=32266剛好小一點,所以完全可以讓z變成26而非25,此時只需要4*6*27=648次。至於為什麼不把73變成74使得每次複製32708個方塊,因為完全沒必要。

(以上正片)

然後,因為不可能預知這一大片面積裡到底有什麼,特別是有沒有流體和兩格高的方塊啥的,所以最先考慮的問題並不是什麼32768的上限,而是優先把y軸全覆蓋到,也就是強行y=102,於是得到dx*dz=32768\102=321。然後,待clone的區域xz分別是292和700,為了便於計算取x=12,z=25,也就是每次從西北角出發複製dx=12,dy=102,dz=25的區域,多簡便沒有,畢竟需要700次,但是不容易導致複製完之後少了些什麼東西。

話說這麼大的面積為什麼要用clone去分塊處理……

為什麼射擊遊戲的 Hitbox 多為長方體而不是其他多面體或球體?

SiriusMiller 看到很多回答講,半徑計算效能上優於AABB的,邏輯上這樣是沒錯了。實際應用中,我了解用了BSP這一套的,一般都是用AABB的,估摸著大概是半徑計算帶來的效能優勢,不足以說服程式設計師引入一整套有差異的邏輯,帶給底層更高的工程複雜性。很多時候乙個完整的專案裡,簡單可靠比那點點...

密閉車廂(簡化為長2m,寬1m,高1m的長方體剛性盒)由靜止變勻加速,車內空氣的運動規律是怎樣的?

booster 由於慣性,車頭的氣體會變稀薄,產生稀疏波 車尾的氣體會被壓縮,產生壓縮波。兩道波在車廂中部稍靠後一點的位置相遇並互相穿過,然後各自在車廂對面反射,如此往復,經過無限長時間後 如果車廂最終達到勻速,那麼這些波系會變得無限微弱,車廂內氣體恢復為均勻狀態。如果車廂保持勻加速狀態,那麼波系同...

如何用最少的資源毀滅地球?

如果是不存在人類,新冠算不算。就是走病毒路線,人類其實還挺脆弱的。不存在動物,氣候變化吧,人類肆意破壞環境,這是讓動物加速滅絕的路徑。不存在生命,這個挺難的,估計採取大面積核汙染是可以的,比如空中各種核爆,海底火山各種核攻擊導致大海嘯,甚至板塊位移消滅很多人類文明。之前有聽說過乙個方法就是幾十顆核彈...