}
/*根据code对格网排序*/
public class CompareMorton : IComparer<PixelPosition_T>
{
public int Compare(PixelPosition_T pp1, PixelPosition_T pp2)
{
return http://www.77cn.com.cnpareTo(pp2.Code);// Compare(pt1.Y, pt2.Y); }
}
2 Hibert填充曲线生成
2.1添加工具项:在工具栏上添加一个名称为Hibert曲线类型为button的工具;并添加单击事件:
2.2.添加一个新的窗体类(类似Z曲线阈值输入窗口设计),剩下步骤可沿用Z曲线生成算法。
算法参考代码
private void hibert_Click(object sender, EventArgs e)//hibert填充曲线
{
Graphics gra = panel1.CreateGraphics();
HibertForm hform = new HibertForm();//新窗体对话框
hform.ShowDialog();
int order = (int)Math.Pow(2, hform.value);//获得阶数
Rectangle rect = new Rectangle(0, 0, panel1.Width, panel1.Height);//获得要填充的窗体/面板
List<Point_T> hpts = HibertFill(rect, order);//调用z曲线排序
for (int i = 0; i < hpts.Count - 1; i++)//绘制z填充曲线
{
gra.DrawLine(Pens.Red, new Point((int)hpts[i].X, (int)hpts[i].Y), new Point((int)hpts[i + 1].X, (int)hpts[i + 1].Y));
}
}
public List<Point_T> HibertFill(Rectangle rect, int order)//hibert排序
{
List<Point_T> pts = new List<Point_T>();
List<PixelPosition_T> hpps = new List<PixelPosition_T>();
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库空间数据索引算法(4)在线全文阅读。
相关推荐: