找回密码
 点一下
查看: 2194|回复: 20

怎么判断单位离开或进入圆形的一个区域呢

[复制链接]
发表于 2008-6-11 20:04:35 | 显示全部楼层 |阅读模式
搞了半天貌似只有矩形的
不规则型的貌似也没办法搞成圆的额
发表于 2008-6-11 20:05:53 | 显示全部楼层
进入xx单位xx距离。。。。。
回复

使用道具 举报

 楼主| 发表于 2008-6-11 20:07:02 | 显示全部楼层
引用第1楼thody于2008-06-11 20:05发表的  :
进入xx单位xx距离。。。。。
居然没发现这个...
多谢了
又是瞬间解决
回复

使用道具 举报

 楼主| 发表于 2008-6-11 20:14:51 | 显示全部楼层
引用第1楼thody于2008-06-11 20:05发表的  :
进入xx单位xx距离。。。。。
突然发现个问题
离开怎么版呢?
回复

使用道具 举报

发表于 2008-6-11 20:19:16 | 显示全部楼层
进入了以后就一直判断距离吧

通过多次添加可以近似变成圆
回复

使用道具 举报

 楼主| 发表于 2008-6-11 20:27:15 | 显示全部楼层
引用第4楼libla于2008-06-11 20:19发表的  :
进入了以后就一直判断距离吧

通过多次添加可以近似变成圆
我是说离开额...
多次添加貌似很痛苦啊
近似完我也挂了
回复

使用道具 举报

发表于 2008-6-11 21:04:50 | 显示全部楼层
可以循环选取单位在圆型区域中
然后把选取单位与你想判定的对比,
回复

使用道具 举报

 楼主| 发表于 2008-6-11 21:44:25 | 显示全部楼层
引用第6楼whimsyduke于2008-06-11 21:04发表的  :
可以循环选取单位在圆型区域中
然后把选取单位与你想判定的对比,
关键是你能搞出圆形区域么
回复

使用道具 举报

 楼主| 发表于 2008-6-11 21:44:54 | 显示全部楼层
由于强大的朱朱
解决了

回复

使用道具 举报

发表于 2008-6-11 21:45:28 | 显示全部楼层
引用第5楼hke于2008-06-11 20:27发表的  :

我是说离开额...
多次添加貌似很痛苦啊
近似完我也挂了
有循环怎么会挂
我说的是循环判断距离中心点的位置,超过一定距离了就视做离开
回复

使用道具 举报

发表于 2008-6-11 21:57:33 | 显示全部楼层
lz可以说下怎么解决的呢??
回复

使用道具 举报

发表于 2008-6-11 22:06:28 | 显示全部楼层
这个就是,我们不需要圆区域,我们只是选择范围内的单位判断多个单位,
我这个方便,单个你的距离判断方便
未命名.jpg
回复

使用道具 举报

 楼主| 发表于 2008-6-11 22:08:39 | 显示全部楼层
引用第10楼zhuzeitou于2008-06-11 21:57发表的  :
lz可以说下怎么解决的呢??
既然猪头都问了
我就发吧
[jass]
function RegionAddCircle takes region whichRegion, real x, real y, real radius returns nothing
    local real r = 16.00
    local real w = 0
    local rect t = Rect(0, 0, 0, 0)
    loop
        exitwhen r > radius
        set w = Cos(Asin(r / radius)) * radius
        call SetRect(t, x - w, y + r - 16.00, x + w, y + r + 16.00)
        call RegionAddRect(whichRegion, t)
        call SetRect(t, x - w, y - r - 16.00, x + w, y - r + 16.00)
        call RegionAddRect(whichRegion, t)
        set r = r + 32.00
    endloop
    call RemoveRect(t)
    set t = null
endfunction
[/jass]
怎么用自己琢磨啦
顺便自己解决自己的问题能不能加5块钱啊
回复

使用道具 举报

 楼主| 发表于 2008-6-11 22:11:12 | 显示全部楼层
引用第11楼whimsyduke于2008-06-11 22:06发表的  :
这个就是,我们不需要圆区域,我们只是选择范围内的单位判断多个单位,
我这个方便,单个你的距离判断方便
你这样需要一直检测啊
我还不如一直检测两点的距离
麻烦啊
回复

使用道具 举报

发表于 2008-6-11 22:12:33 | 显示全部楼层
用内接四边形叠加撑一个圆出来,弄到一个不规则区域里去,是吗??
回复

使用道具 举报

 楼主| 发表于 2008-6-11 22:13:10 | 显示全部楼层
引用第14楼zhuzeitou于2008-06-11 22:12发表的  :
用内接四边形叠加撑一个圆出来,弄到一个不规则区域里去,是吗??
对啊
关键是怎么叠出那个圆啊
回复

使用道具 举报

发表于 2008-6-11 22:18:17 | 显示全部楼层
循环内的每一步就是获取一个圆的内接四边形,并添加到一个不规则区域内
循环添加,从最窄最长的开始,最后添加到最宽最短的

添加到最后应该是一个近圆的区域

我在想,r的初始值和自增值不是固定的,而是根据半径变化,是不是更好点呢??
回复

使用道具 举报

 楼主| 发表于 2008-6-11 22:23:22 | 显示全部楼层
引用第16楼zhuzeitou于2008-06-11 22:18发表的  :
循环内的每一步就是获取一个圆的内接四边形,并添加到一个不规则区域内
循环添加,从最窄最长的开始,最后添加到最宽最短的

添加到最后应该是一个近圆的区域

.......
那你就写个更强大的给我吧
回复

使用道具 举报

发表于 2008-6-11 22:26:56 | 显示全部楼层
这样啊,原来素用大量矩形模拟圆形区域。
回复

使用道具 举报

发表于 2008-6-11 22:44:44 | 显示全部楼层
从——到 |
                 |
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-20 18:10 , Processed in 0.084082 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表