for (int i = 0; i < order; i++)
{
for (int j = 0; j < order; j++)
{
int[] biri = DecToBir(i);//十进制转二进制
int[] birj = DecToBir(j);//十进制转二进制
int[] birmor = HibertCode(birj, biri);//morton码
int decmor = BirToDec(birmor);//二进制转十进制
PixelPosition_T pp = new PixelPosition_T(i, j, decmor);//构建包含morton码的网格
hpps.Add(pp);//添加存储
}
}
CompareMorton commor = new CompareMorton();
hpps.Sort(commor);
foreach (PixelPosition_T pp in hpps)
{
double x = rect.Width / order * (pp.Col + 0.5);
double y = rect.Height / order * (pp.Row + 0.5);
Point_T pt = new Point_T(x, y);
pts.Add(pt);
}
return pts;
}
public int[] HibertCode(int[] bir1, int[] bir2)//hibert码
{
int[] birhib = MortonCode(bir1, bir2);
for (int i = 0; i < 63; i = i + 2)
{
if (birhib[i] == 1 && birhib[i + 1] == 0)
{
birhib[i + 1] = 1;
}
else if (birhib[i] == 1 && birhib[i + 1] == 1)
{
birhib[i + 1] = 0;
}
}
for (int i = 0; i < 63; i = i + 2)
{
if (birhib[i] == 0 && birhib[i + 1] == 0)
{
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库空间数据索引算法(5)在线全文阅读。
相关推荐: