作者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