/*
x坐标
*/
static const uint8_t block_idx_x[16] =
{
0, 1, 0, 1, 2, 3, 2, 3, 0, 1, 0, 1, 2, 3, 2, 3
};
/*
Y坐标
*/
static const uint8_t block_idx_y[16] =
{
0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
};
static const uint8_t block_idx_xy[4][4] =
{
{ 0, 2, 8, 10 },
{ 1, 3, 9, 11 },
{ 4, 6, 12, 14 },
{ 5, 7, 13, 15 }
};

上图与xy数组有一种对应关系,如下图所示:


这是毕厚杰书上第108页的图,把这个图中的方块按zigzag锯齿形扫描一下,得到:

把左上角的小方块里的数列出来,就是:
00 10 01 02 11 20 30 21 12 03 13 22 31 32 23 33
把每一组的第一个作为x,第2个作为y
或者,直接把第一个抽出来作为一个序列,把第2个数抽出来作为第二个序列
0, 1, 0, 0 1 2 3 2 1 0 1 2 3 3 2 3
0, 0, 1, 2 1 0 0 1 2 3 3 2 1 2 3 3
把上面的两个一维数组的复制过来0, 0, 1, 2 1 0 0 1 2 3 3 2 1 2 3 3
0, 1, 0, 1, 2, 3, 2, 3, 0, 1, 0, 1, 2, 3, 2, 3
0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
把上面这两行上下换一下(如果不嫌看的别扭的话,不换也行),上下换后,如下:
0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
0, 1, 0, 1, 2, 3, 2, 3, 0, 1, 0, 1, 2, 3, 2, 3
从上往下,两个两个的连起来,正好和图5.49里,按箭头指的顺序相统一,说不清,找张纸画一下就明白了。
0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
0, 1, 0, 1, 2, 3, 2, 3, 0, 1, 0, 1, 2, 3, 2, 3
从上往下,两个两个的连起来,正好和图5.49里,按箭头指的顺序相统一,说不清,找张纸画一下就明白了。
