Java教程第6章交互与编辑对象.ppt_第1页
Java教程第6章交互与编辑对象.ppt_第2页
Java教程第6章交互与编辑对象.ppt_第3页
Java教程第6章交互与编辑对象.ppt_第4页
Java教程第6章交互与编辑对象.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第6章 交互与编辑对象,主讲人:李恒凯 联系电话电子邮件: QQ:20297327,本次课内容,1 和用户交互 2 选择集 3 编辑图形对象,1 和用户交互,思路 步骤 效果 小结,思路,动态创建多段线, 最基本的要求是用户在图形窗口中按顺序拾取多个顶点, 每次输入一点都会将其添加到多段线的末尾, 最终按下Enter键或者Esc键完成多段线的创建。 如果在输入点之前或之后改变了多段线的颜色或线宽, 多段线能立即自动刷新, 使其整体特性立即改变。,思路,点输入涉及的用户交互类是EditorInput命名空间的PromptPointOptions和PromptPointResult,其基本使用方法为:,Editor ed =ApplicationDocumentManaoer.MdiActiVeDocument.Editor; PromptPointOptions optPoint =New PromptPointOptions(”请输入一个点“); PromptPointResult resPoint =ed.GetPoint(optPoint); Point3d pt =resPoint.Value;,首先定义一个新的点交互类, 通过命令行编辑器的GetPoint函数返回一个点提示类,最后再由点提示类的Value属性,得到用户的输入点。,交互操作使用的类,拾取点:PromptPointOptions和PromptPointResult类。 拾取角点:PromptComerOptions和PromptPointResult类。 输入整数:PromptIntegerResult和PromptIntegerResult类。 输入实数:PromptDoubleOptions和PromptDoubleResult类。 输入距离: PromptDistanceoptions和PromptDoubleResult类。 输入角度:PromptAngleOptions和PromptDoubleResult类。 输入关键字:PromptKeywordOptions和PromptResult类。 输入字符串:PromptStringOptions和PromptResult类。 拾取对象:PromptEntityoptions和PromptEntityResult类。 选择集: PromptSelectionOptions和PromptSelectionResult类。,步骤,添加GetWidth函数,用于得到用户输入的线宽. 添加得到用户输入颜色索引值的函数getcolorindex。 添加图形对象加入模型空间的函数AppendEnity。 注册AddPoly命令。,具体代码见VS.NET,效果,小结,整数、实数、点和关键字的输入方法 输入默认值的方法 如何对输入的值加以限制 对用户输入状态的判断 点和关键字结合运用的技巧,2 选择集,说明 思路 步骤 效果 小结,说明,选择集是被用户或程序所选择的一组实体。 在程序中可以要求用户选择实体,也可以使用过滤器来进行有条件的选择。 选择集允许用户同时选择多个图形对象,同时提供了丰富的手段来选择符合特定条件的实体。,说明,过滤器是用来加速选择集操作并在程序运行过程中对实体进行验证的一个非常有用的工具。 过滤器由EditorInput命名空间的SlectionFilter类来实现,它的构造函数为带有一个TypedValue类型的数组,TypedValue数组指定了过滤的原则。 要使用带有过滤操作的选择集,我们首先要定义一个TypedValue类型的数组,然后用它来构造SlectionFilter类型的对象,最后把SlectionFilter对象传入带有过滤器参数的GetSelection()函数或SelectXXX()函数。,思路,选择集涉及的类比较多,主要是 选择集用户交互类PromptSelectionoptions 用户提示类PromptSelectionResult 表达选择集本身的SelectionSet类 表示过滤的SelectionFilter类等.,思路,典型代码,Editor ed =AppliCationDocumentManagerMdiActiveDocumentEditor; /定义一个选择集交互类 PromptSelectionOptions optSel = New PromptSelectionOptions(); /选择操作时的提示文本 optSel. MessageForAdding=”请选择位对象”; /返回选择集的用户提示类 PromptSelectionResuit resSel =edGetSelection(optSel); /得到选择集对象 SelectionSet SSet =resSel.Value;,思路,在使用各种选择对象的方法时,可以使用过滤器来限定选择的对象。 过滤器列表由成对的参数组成。第一个参数标识过滤器的类型,第二个参数指定要过滤的值。 过滤器类型是指定使用哪种过滤器的DXF组码。,思路,选择集通过调用GetSelection及SelectXXX函数实现 GetSelection:用户在图形窗体中选择实体 SelectAll:选择所有实体 SelectCrossingWindow: SelectCrossingPolygon: SelectFence: SelectImplied: SelectLast: SelectPrevious: SelectWindow: SelectWindowPolygon,步骤,注册testSel命令,用于测试普通的选择集。 注册testFilSel命令,用于测试带过滤器的选择集。,具体代码见VS.NET,效果,小结,NET中创建选择集的方法。 NET中选择集的过滤方法。 遍历选择集的方法。 打开选择集对象的方法。 改变图形对象颜色的方法。,3 编辑图形对象,思路 步骤 效果 小结,思路,除了删除(Erase)操作,其他编辑操作NET大都是用矩阵的方法进行处理的。Geometry命名空间中的Matrix2d和Matrix3d类分别表示二维与三维矩阵。 对于移动,先得到移动的方向矢量,再获得移动的矩阵,就可进行移动。 对于复制,获得移动的矩阵后,可通过实体(Entity类)的GetTransformedCopy函数,返回一个复制的图元对象,再将该对象加入到图形数据库中。,思路,对于旋转、缩放,和移动相似,得到相应的变换矩阵,再进行变换即可。 对于镜像,先定义几何类的镜像线,得到镜像矩阵,再进行镜像变换(删除源对象时)或镜像复制(不删除源对象时)。 对于偏移,要用Curve类的GetOffsetCurves函数得到偏移生成的对象集合,而不是用矩阵变换的方法,再将这些对象加入到图形数据库中。 对于矩形阵列和环形阵列,实际上都是多重复制,核心问题是各复制目标点的确定。,步骤,添加Move过程,用于移动命令 重载一个Move过程,同样用于移动命令 添加Copy过程,用于复制命令 添加Rotate过程,用于旋转命令 添加Scale过程,用于缩放命令 添加Mirror过程,用于镜像命令 添加0ffset过程,用于偏移命令 添加ArrayRect

温馨提示

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

评论

0/150

提交评论