※ 引述《kewang ( ~動靜~)》之銘言:
: ※ 引述《ccclum (我好像很閒??)》之銘言:
: : 假設我要copy Y[176][144]的圖片
: : 假設我現在要以16*16的方塊大小copy
: : 我下面寫的程式有任何問題嗎??
: : int h,w,Block_h,Block_w;
: : int height=176;
: : int width=144;
: : for(h=0;h<height;h=16+h);
: : for(w=0;w<width;w=16+w)
: : {
: : for(Block_h=h;Block_h<(h+16);++Block_h)
: : for(Block_w=w;Block_w<(w+16);++Block_w)
: : motion_Y[Block_h][Block_w]=Y[Block_h][Block_w];
: : }
: 剛剛寫的 沒compile過
: 錯了別怪我....
: 我看了一下你的寫法 我們兩個大致上是差不多
: 不過你的迴圈寫法就讓人很難理解 非人哉
: 1 #include <stdio.h>
: 2
: 3 #define WIDTH 144
: 4 #define HEIGHT 176
: 5 #define BLOCK_SIZE 16
: 6
: 7 int main(){
: 8 int h, w;
: 9 int bh, bw;
: 10 int pic[HEIGHT][WIDTH];
: 11 int block[BLOCK_SIZE][BLOCK_SIZE];
: 12
: 13 for(h=0;h<HEIGHT;h+=BLOCK_SIZE){
: 14 for(w=0;w<WIDTH;w+=BLOCK_SIZE){
: 15 for(bh=0;bh<BLOCK_SIZE;bh++){
: 16 for(bw=0;bw<BLOCK_SIZE;bw++){
: 17 block[bh][bw]=pic[h+bh][w+bw];
^^^^^^^
應該改成block[h+bh][w+bw]=pic[h+bh][w+bw];
基本上跟我表達的意思是一樣的
但是你原本的寫法 bh ,bw 永遠都在0~15
改成我說的話 就是跟我表達的一樣了
只是迴圈的寫法 不太一樣
又讓我見識到新的想法了.....
其實我中間還有一堆東西 我把他剪掉了...
我的是雙層迴圈裡再加一個雙層迴圈
你的是直接四層迴圈
: 18 //other processing......
: 19 }
: 20 }
: 21 }
: 22 }
: 23
: 24 return 0;
: 25 }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.138.54.235
※ 編輯: ccclum 來自: 220.138.54.235 (08/19 09:41)
※ 編輯: ccclum 來自: 220.138.54.235 (08/19 09:41)