作者KawasumiMai (魔物を讨つ者)
看板Flash
标题Re: [问题] 从中心向外扩散读取bitmapdata点阵
时间Thu Nov 4 20:23:22 2010
: for (var i=0; i<loader.width; i+=20) {
: for (var j=0; j<loader.height; j+=20) {
: var child:Shape = new Shape();
: child.graphics.beginFill(bitmapData.getPixel(i, j));
: child.graphics.lineStyle(1, bitmapData.getPixel(i, j));
: child.graphics.drawRect(i, j, Math.random ()*70, Math.random ()*70);
: child.graphics.endFill();
: child.alpha = 0.5;
: addChild(child);
: }
: }
: }
其实我看不太懂你写的这些
只是猜width和height的写法这样
中心点是width/2,height/2
所以第一次要解析width/2,height/2那个点
第二次从中心点开始
解析width/2-1,height/2-1到width/2+1,height/2+1这九个点(包含一开始的那个)
也就是说变化量是width的一半,依次+1
我只写for回圈
for(i=0;i<=width/2;i++){ //变化量
for(j=width/2-i;j<=width/2+i;j++){ //横向
for(k=height/2-i;k<=height+i;k++){
getpixel(j,k)
}
}
}
以上的前提是你的图片是正方形的
--
▼▼ ◥▇◣◣
▲◢◣▲ \ ╲ ◢◣▲ ◥█████◣ 川澄 舞
▲/‘ d▄▄▄◣ —
▲/‘ ─
◥██████▌ Kwawasumi Mai
▂▄▅▄■▄▄▄▄▄▆─
▼ ノ▅■ ───
▆██████
▇▆ ◢█▼ —
▇▆◢█▼ ──
◥██████ 力の覚醒.魔力放出
▲
▲ ▼▼ ◥██◤██▄
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.74.150
1F:推 iverson007:谢谢你的回答~这样的确可以从中间向外取得~但请问有办 11/04 20:41
2F:→ iverson007:法每一次取得都不包含之前取得过的那些吗? 11/04 20:42
width/2-2 width/2+2
width/2-1 width/2+1 ■■■■■ height/2-2
width/2 ■■■ height/2-1 ■ ■
■ height/2 ■ ■ ■ ■
■■■ height/2+1 ■ ■
■■■■■ height/2+2
由以上图例可得知,方形范围中最外圈的条件是 x或y其中一个值为最大或最小值(边界)
因此加上if判断式,其余回圈略过
for(i=0;i<width/2;i++){ //变化量
for(j=width/2-i;j<=width/2+i;j++){ //横向
for(k=height/2-i;k<=height+i;k++){ //纵向
if(j==width/2+i or j==width/2-i or k==height/2+i or k==height/2-i){
getpixel(j,k)
}
}
}
}
※ 编辑: KawasumiMai 来自: 61.62.74.150 (11/04 21:20)
3F:推 dsmwang:K大真nice XD 11/04 21:32
4F:→ KawasumiMai:看得懂就顺手推啊,我看不懂就略过(茶 11/04 21:40
6F:→ iverson007:点画面切换圆形或方形~~再次感谢K大 11/04 22:31
7F:→ iverson007: 答 11/04 22:33
8F:推 etrexetrex:我喜欢这个效果 不过这样的解法仍然不是绕着中心 11/04 22:39
9F:→ KawasumiMai:挖赛,这效果好神,我要学起来 11/04 23:13
10F:推 dsmwang:我看不懂e大的话耶XD...拜请解释~ 11/04 23:15
11F:推 etrexetrex:等我一下八 我写一篇 11/04 23:16
12F:→ KawasumiMai:我的写法是每一圈从上到下扫描 11/04 23:31
13F:→ KawasumiMai:我想e大的重点在於想呈现螺旋状扩展吧 11/04 23:32
14F:推 etrexetrex:是呀 XD 11/04 23:49