手机上实现任意角度翻转算法[适用任何机型] |
| 作者:bb 来源:迷你手游 发布时间:2005-11-3 14:03:23 |
|
else for (int j2 = 0; j2 < j1; j2++) { int j = j2; int k = i2; if ((l1 & 1) != 0) j = j1 - 1 - j; if ((l1 & 2) != 0) k = k1 - 1 - k; if ((l1 & 4) != 0) { int k2 = j; j = k; k = k2; } newPixels[j1 * i2 + j2] = pixels[curFrame][width * k + j]; } } int off = offset; int vw = x + j1; int vh = y + k1; for(int idy = y; idy < vh; idy++){ int voff = off; for(int idx = x; idx < vw; idx++){ short pixel = newPixels[voff++]; int k3 = idx; for(; idx < vw - 1 && newPixels[voff] == pixel; voff++) idx++; if((pixel >> 12 & 0xff) != 0) { int l3 = 0xf0 & pixel << 4; l3 |= 0xf000 & pixel << 8; l3 |= 0xf00000 & pixel << 12; g.setColor(l3); g.drawLine(k3, idy, idx, idy); } } off += j1; } } private static int map2Manipulation(int i) throws IllegalArgumentException { int j = 0; if ((i & 0x2000) != 0) j ^= 1; if ((i & 0x4000) != 0) j ^= 2; switch (i & 0xffff9fff) { case 90: // 'Z' j ^= 6; break; case 180: j ^= 3; break; case 270: j ^= 5; break; default: throw new IllegalArgumentException(); case 0: // '\0' break; } return j; } } |
| [] [返回上一页] [打 印] |
|
文章评论 |
