Z填充曲线的生成.doc_第1页
Z填充曲线的生成.doc_第2页
Z填充曲线的生成.doc_第3页
Z填充曲线的生成.doc_第4页
Z填充曲线的生成.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Z填充曲线的生成功能操作步骤:单击工具栏的z曲线工具,弹出对话框,输入阶数n,确定生成n阶z填充曲线。功能实现流程:1.添加工具项:在工具栏上添加一个类型为button的工具;然后在属性框设置text为Z曲线;设置name为z;设置Image为前面提供位置的任意图片或自己绘制一个图片。设置事件框中的单击事件click;对着click双击,弹出代码文件。2.为事件函数添加如下代码 Graphics gra = panel1.CreateGraphics(); ZForm zform=new ZForm();/新窗体对话框 zform.ShowDialog(); int order = (int)Math.Pow(2,zform.value);/获得阶数 Rectangle rect = new Rectangle(0, 0, panel1.Width, panel1.Height);/获得要填充的窗体/面板 List zpts = ZFill(rect,order);/调用z曲线排序 for (int i = 0; i zpts.Count - 1; i+)/绘制z填充曲线 gra.DrawLine(Pens.Red,new Point(int)zptsi.X,(int)zptsi.Y),new Point(int)zptsi+1.X,(int)zptsi+1.Y); 3.在主程序的命名空间下添加一个类,并使得该类继承From类;之后设计该新的窗体。1)首先将窗体的text改为Z曲线输入阶数;2)添加一个textbox,并将其name改为ztb;3)添加一个button,并将其text改为确定,name改为zbt,并对其添加一个单击事件。4)事件中添加如下代码:目的是为了将文本框中的值保存已被主程序调用。value = Convert.ToInt32(ztb.Text); this.Hide(); this.Close();5)假如没有构造函数,添加一个构造函数 public ZForm() InitializeComponent(); 6)添加一个公有字段value4.添加算法代码public List ZFill(Rectangle rect, int order)/z曲线排序 List pts = new List(); List zpps = new List(); for (int i = 0; i order; i+) for (int j = 0; j 0) birtag = dec % 2; tag-; dec = (int)(dec / 2); return bir; public int MortonCode(int bir1, int bir2)/求morton码 int birmor = new int64; for (int i = 31; i = 0; i-) birmor2 * i + 1 = bir1i; birmor2 * i = bir2i; return birmor; public int BirToDec(int bir)/二进制转十进制 int dec = 0; for (int i = 63; i = 0; i-) dec += (int)(biri * Math.Pow(2, 63 - i); return dec; 5.修改PixelPosition_T类:对其添加一个字段code,用来保存morton码,添加一下部分:private int code; public int Code get return code; set code = value; public PixelPosition_T(int r, int c, int cd) row = r; col = c; code = cd; 6.增加一个排序类,根据Pixelposition_T类中的code(morton码)对其排序public class CompareMorton : IComparer public int Compare(PixelPosition_T pp1, PixelPosit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论