本帖最後由 ghostkcleung 於 2021-7-4 23:37 編輯
終於鬥惦咗。
// w: width, h:height,
//r: rotate ( 0 to 7 )
// rotate 0: CW0, 2: CW90, 4: CW180, 6: CW270
// rotate 1, 3, 5, 7 are mirror of 0, 2, 4, 6
for(int16_t y=0; y<=h; y++) {
for(int16_t x=0; x<=w; x++) {
switch ( r ) {
case 0:
data[y*w+x]=value;
break;
case 1:
data[(y+1)*w-x-1]=value;
break;
case 2:
data[(x+1)*w-y-1]=value;
break;
case 3:
data[(h-x)*w-y-1]=value;
break;
case 4:
data[(h-y)*w-x-1]=value;
break;
case 5:
data[(h-y-1)*w+x]=value;
break;
case 6:
data[(h-1-x)*w+y]=value;
break;
case 7:
data[x*w+y]=value;
break;
}
}
} |