作者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
1F:推 LayerZ:线就是线 为什麽要抓偏左偏上.. 02/27 10:34
2F:→ LayerZ:线本身也是由pix组成,也是有体积阿 02/27 10:34
3F:→ LayerZ:你要用点pix去算,又要抓边线,本身就很奇怪了 02/27 10:35
4F:→ euph:线没有啦 线就是一点 是方块抓左上 算FF的时候是以方块去算的 02/27 10:41
5F:推 ddavid:用我的方法来说,线本身是另一种东西,当你圈成功时会分为 02/27 17:42
6F:→ ddavid:线上、较小区域、较大区域三个类别,而清除是把线+小区清掉 02/27 17:43
7F:→ ddavid:然後你的画线怪怪的,不用画在边上啊,就像贪食蛇那样直接 02/27 17:44
8F:→ ddavid:由小方块组成线就好 02/27 17:44
9F:→ LayerZ:同意楼上,都已经用点阵图了就不用去分边线.. 02/27 17:46
10F:→ euph:可能是天蚕变的印象太强 以前就是走在格子线上的 我用楼下的 02/27 19:12
11F:→ euph:方法解出来了 感谢大家帮忙 呼~ 02/27 19:12
12F:推 ddavid:其实我玩过的都没看过是走格线的(因为都直接pixel)XD 02/27 22:19
13F:→ ddavid:但总之解出来就好,事情不只一种方法可以做XD 02/27 22:19