博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenS-CAD学习(1)
阅读量:5889 次
发布时间:2019-06-19

本文共 1262 字,大约阅读时间需要 4 分钟。

1.OpenS-CAD是一个不错的小巧的开源程序,以图层方式组织图形,可以绘制基本的线段、弧段、圆,可以进行节点对象捕捉,可以选择几何对象、对图幅进行平移、放大、缩小。可以将结果序列化保存为xml格式。其中的图形数据绘制组织方式和局部刷新知识点值得学习。

2.基本架构

  多文档/视图结构。

  将活动的DocumentForm的菜单作为主窗体的菜单。

3.绘制的一点分析

  将绘制成功的对象加入集合,在OnPaint中统一进行绘制(绘制在位图上),新增加对象m_newObject等临时对象绘制在控件上。编辑的过程中通过局部刷新技术减少闪烁,主要是在是MouseMove事件中。移动、选择、绘制、编辑、漫游等命令类型在三个鼠标事件中用于区别不同的操作对应不同的代码。

  绘制线段:MouseDown后,如果新建对象m_newObject为null,构造线段;再次单击m_newObject!=null,添加到m_data中。同时初始化新的m_newObject,线段是两点相同的线段。

程序入口:

1 public MainWin() 2         { 3             UnitPoint p = HitUtil.CenterPointFrom3Points(new UnitPoint(0,2), new UnitPoint(1.4142136f, 1.4142136f), new UnitPoint(2,0)); 4  5             InitializeComponent(); 6             Text = Program.AppName; 7             string[] args = Environment.GetCommandLineArgs(); 8             if (args.Length == 2) // assume it points to a file 9                 OpenDocument(args[1]);10             else11                 OpenDocument(string.Empty);12             13             m_menuItems = new MenuItemManager(this);14             m_menuItems.SetupStripPanels();15             SetupToolbars();16             17             Application.Idle += new EventHandler(OnIdle);18         }
MainWin构造函数

文档窗体:DocumentForm

文档窗体中的绘图画布:CanvasCtrl m_canvas;        存储绘制图形数据的集合:DataModel m_data;

 

转载地址:http://fxysx.baihongyu.com/

你可能感兴趣的文章
删除UINavigationItem上的BarButtonItem
查看>>
数据分析相关模块
查看>>
Python数据结构1-----基本数据结构和collections系列
查看>>
SQL Denali-FileTable
查看>>
C# 图像处理:复制屏幕到内存中,拷屏操作
查看>>
PHP微信支付流程
查看>>
linux下单节点oracle数据库间ogg搭建
查看>>
PLSQL Developer软件使用大全
查看>>
swift三方库
查看>>
杭州之行
查看>>
oracle ORA-00917: missing comma 是因为少逗号
查看>>
策略模式简介
查看>>
UIViewController中loadView的用法(应当注意的几点)
查看>>
POJ NOI0105-42 画矩形
查看>>
Java 数组在内存中的结构
查看>>
《关爱码农成长计划》第一期报告
查看>>
entity framework 6 通用数据类
查看>>
读取FTP上的excel文件,并写入数据库
查看>>
vs2008快捷键极其技巧 转载
查看>>
window 7上安装Visual Studio 2017失败的解决方法
查看>>