- 906 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:54:57 ]
- static final short[] sin_tbl = {0, 100, 200, 301, 401, 501, 601, 700, 799, 897, 995, 1092, 1189, 1284, 1379, 1474,1567, 1659, 1751, 1841,
1930, 2018, 2105, 2191, 2275, 2358, 2439, 2519, 2598, 2675, 2750, 2824,2896, 2966, 3034, 3101, 3166, 3229, 3289, 3348, 3405, 3460, 3513, 3563, 3612, 3658, 3702, 3744,3784, 3821, 3856, 3889, 3919, 3947, 3973, 3996, 4017, 4035, 4051, 4065, 4076, 4084, 4091, 4094,}; public int get_sin(int angle) { // Sin値取得 int result,sn = 1; angle &= 0x0ff; if(angle >= 128){ sn = -1;angle -= 0x080; } if(angle < 0x040){ result = sin_tbl[angle]; return result * sn; } else if(angle == 0x040) { result = 0x1000; return result * sn; } else{ result = sin_tbl[0x080 - angle]; return result * sn; } } public int get_cos(int angle){ // Cos値取得 return get_sin(angle + 0x040); } public int[] set_matrics(int r, int x, int y, int sw, int sh, int w, int h){ // アフィン変換 int[] m = new int[6]; int ix,iy,dx,dy; ix = sw / 2;iy = sh / 2; dx = x - ix;dy = y - iy; // 回転の中心, 回転の中心からの差分 // 回転用のマトリックスの設定 m[0] = get_cos(r) + w; m[1] = get_sin(r) + h; m[2] = (dx * get_cos(r) + dy * get_sin(r)) + 4096 * ix; m[3] = -get_sin(r) - w; m[4] = get_cos(r) + h; m[5] = (-dx * get_sin(r) + dy * get_cos(r)) + 4096 * iy; } ここで、イメージの一部にアフィン変換をかけて表示しています。どのようにしたら、反転要素を入れることができますか?
|

|