作者euph (咬咬嚼嚼猴子口味)
看板GameDesign
標題Re: [程式] 圈地面積 最小面積取得相關 (方向判定)
時間Wed Feb 27 10:09:21 2013
感謝前輩們幫忙
我現在遇到的麻煩比較奇怪 不知道是不是我自己頭腦打結
因為在算FloodFill的時候 比較的對像一個是線的端點 一個是方塊平面
我截了幾張圖下來 還請大家幫我看一下
我現在的資料結構 是存了方塊(紀錄左上角的點)和線以方塊長度為單位紀錄
好比第一張圖
http://imageshack.us/f/12/bb1db.jpg/
以線經過的點劃出的方塊就會是圖裡面的亮白色框框
但是麻煩就來了 當我的線方向轉回來如圖二的時候
http://imageshack.us/f/854/bb2uh.jpg/
就會把生成的框框放到右邊去
這時候如果去跑FloodFill就會有一個問題
到底線所經過的方塊 是要算進來 還是要當作邊界捨棄呢?
當如果線是往下走 如第三張圖的時候
http://imageshack.us/f/11/bb3uu.jpg/
所劃出來的東西就是再更外面了
於是就卡在這裡
我原本想要換一個方向 用陣列紀錄方塊
再去與線段做比對 可是因為線段是可以轉彎的
就會變成複雜度很高的每一個都要重新比對一次
啊!!! 卡關了啦 >"<
再請大家上班偷閒來解答啊 :P
--
樂於當宅男
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.118.185.164
推 LayerZ:線就是線 為什麼要抓偏左偏上.. 02/27 10:34
→ LayerZ:線本身也是由pix組成,也是有體積阿 02/27 10:34
→ LayerZ:你要用點pix去算,又要抓邊線,本身就很奇怪了 02/27 10:35
→ euph:線沒有啦 線就是一點 是方塊抓左上 算FF的時候是以方塊去算的 02/27 10:41
推 ddavid:用我的方法來說,線本身是另一種東西,當你圈成功時會分為 02/27 17:42
→ ddavid:線上、較小區域、較大區域三個類別,而清除是把線+小區清掉 02/27 17:43
→ ddavid:然後你的畫線怪怪的,不用畫在邊上啊,就像貪食蛇那樣直接 02/27 17:44
→ ddavid:由小方塊組成線就好 02/27 17:44
→ LayerZ:同意樓上,都已經用點陣圖了就不用去分邊線.. 02/27 17:46
→ euph:可能是天蠶變的印象太強 以前就是走在格子線上的 我用樓下的 02/27 19:12
→ euph:方法解出來了 感謝大家幫忙 呼~ 02/27 19:12
推 ddavid:其實我玩過的都沒看過是走格線的(因為都直接pixel)XD 02/27 22:19
→ ddavid:但總之解出來就好,事情不只一種方法可以做XD 02/27 22:19