设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1935|回复: 2
打印 上一主题 下一主题

【VX】Bitmap中圆形区域的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
543 小时
注册时间
2009-7-13
帖子
63
跳转到指定楼层
1
发表于 2011-12-24 22:09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 nanaka 于 2011-12-25 00:51 编辑

具体是想将bitmap中的一个半径为r的圆形区域设置为透明,
现在是用的两重循环枚举该圆外切正方形内的每一个点,
判断该点是否在圆内后用set_pixel设置为透明。
但是这个圆形区域的r最大会到100个像素,于是响应时间大概有0.2s
求一个更好的方法实现……

懒得开高级模式结果没的系统分送了,有补救方法吗orz
--------------------------------------------------------------------------------------
枚举1/4圆关于x、y、原点对称处理解决了……

点评

set_pixel貌似的确比较费内存,然后数学无能表示等高触打个几十行解决  发表于 2011-12-24 22:30
0.2s很慢么233  发表于 2011-12-24 22:15

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
2
发表于 2011-12-24 22:15:34 | 只看该作者
或者可以将圆划分为若干个矩形来fill_rect?

点评

因为可能短时间点多次,卡卡的感觉很差…… 开始也打算过分为若干个矩形,然后数学能力不足以实现……  发表于 2011-12-24 22:21

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
3
发表于 2011-12-25 03:16:33 | 只看该作者
四叉树咯,这是很好的解决平面问题的方法。
先已外切正方形开始,田字平分4块。先第一快,判断4个角是否都在园内,如果都在园内,就都透明,都在园外就都不透明。
如果4个角有的在外,有的再内,则将这块正方形继续田字分成4个小正方形,反复上面的算法,一直分到1像素。
这么说不知道你看懂没。
但是这种算法并不是最优。不过确实很实用的方法,可用于多数情况。四叉树,百度一个。

专用算法,专门针对你说的园的算法。
for i in 1..9
     删除区域(-sin(i*10º),-cos(i*10º),

sin(i*10º),cos(i*10º))
end

不知道能不能看懂,
那个1..9只是随便写的,数字越大,画出来的就越精细。

点评

我试着写写,谢指教!  发表于 2011-12-25 09:31

评分

参与人数 2星屑 +146 梦石 +2 收起 理由
fux2 + 132 + 2 塞糖
nanaka + 14 对1/4圆用四叉树加对称最后0s了,跪谢…….

查看全部评分

精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-29 11:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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