-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path日志.txt
110 lines (87 loc) · 5.12 KB
/
日志.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
10:54 2014/4/17
想法:用队列在运行时存储图元
用循环栈存储撤销/重做
16:30 2014/4/17
创建好了一个前台窗口(透明、鼠标穿透)用来显示画图过程中的动画效果
----------------------------------------------------------------------
11:58 2014/4/18
重新设置了选择按钮的图标。让框架类维护各个ribbon按钮的状态(是否可用,是否选中)。
想法:
在view类中维护状态。在各个菜单按钮中更改状态。在鼠标左键和右键事件处理程序中做绘图操作。
----------------------------------------------------------------------
8:43 2014/4/19
TODO:为每个图形创建一个类。并且继承自一个虚基类。虚基类有:旋转,平移,镜像翻转操作。
TODO:封装一个实现多个点旋转、平移、和镜像翻转的模块。将每个图形类的二维变换操作都委托给这个模块。这个模块可能是是几个函数。
21:34 2014/4/19
为每一种图形创建了类,并实现了旋转、平移、镜像翻转三种二维变换。
每个图形的二维变换是通过操作每个控制点实现的。控制点的二维变换都委托给了Translation模块。
并且旋转的中心点都暂定为图形的中点。镜像分为以x轴和y轴为对称轴。
----------------------------------------------------------------------
21:54 2014/4/25
鼠标左键绘图操作(暂时搞定直线,相信矩形和椭圆也一样,待设计的是多边形和曲线绘图逻辑)已经搞定。界面基本设计完成。图标的美化修改留到最后,先在最重要的是实现功能。
TODO:实现好各个按钮功能。是ribbon-->frame-->view还是直接ribbon-->frame。frame维护着m_wndRibbon,可以接触到控件。frame和view都可以响应控件事件,但只有一个能响应。
而view负责绘图和交换,必须知道画布、和画布等所处的状态。所以view必须保持状态。而ribbon的事件能改变状态。而且我们需要知道控件的状态来改变绘图内部的状态(view维持的)。
有些控件(颜色,图形,选择、线型,线宽)的内部状态必须通过m_wndRibbon来访问。所以必须让frame来响应这些控件事件,然后frame在控件事件处理函数中获得控件的内部状态,再
发送自定义消息给view,view收到消息后修改自己的内部状态。所以设计如下:
选择、图形类型、颜色、线性、线宽通过:ribbo控件-->frame-->view。
而其他能确定不需要访问控件的内部状态的控件直接通过:ribbon控件-->view。
--------------------------------------------------------------------------------------------------------------------------------------------
10:31 2014/4/26
完成了绘图过程中交换效果的:线型、线宽、颜色。TODO:把doc中保存的数据加上线型、线宽、颜色。设计好保存的文件结构
完成了矩形、椭圆的绘制效果。TODO:多边形、矩形的绘制逻辑
17:47 2014/4/26
完成的多边形的绘图交换效果和逻辑。TODO::贝塞尔曲线
10:19 2014/4/30
完成了贝塞尔曲线的绘制代码。
TODO:图形的选中操作、交互式属性设置。图形的交互式变换:平移、大小调节、旋转。 数据的保存。
15:17 2014/4/30
TODO:完成图形的选中状态。为了做到这一点,将图形链表有数据类型CObArray改为C++标准链表。
--------------------------------------------------------------------------------------------------------------------------------------------
11:51 2014/5/1
为各个图形类添加了DrawHit()方法和IsHit(POINT)方法。
DrawHit()方法:绘制图形在选中状态下的外观。
IsHit(POINT)方法:根据鼠标的单击点判断图形是否选中。
封装了CGraphList类来管理图形。
CGraphList维持一个链表成员来保存所有图形,一个图形指针成员来保存被选中的图形。一个时刻只能有一个图形处于选中状态。
TODO:(1)用CGraphList来接管doc中的CObArray m_GraphArray。(2)完成图形的选中状态。
16:01 2014/5/1
完成了(1)用CGraphList来接管doc中的CObArray m_GraphArray。(2)完成图形的选中状态。
TODO:图形的移动。
16:00 2014/5/2
完成了:图形的移动。修复了选中的图形在绘制其他图形时仍然显示为选中状态的小问题。
--------------------------------------------------------------------------------------------------------------------------------------------
8:55 2014/5/9
完成了对选中图形的颜色、线型、线宽的编辑
10:26 2014/5/9
用双缓冲解决了移动图形时界面闪烁的问题。
--------------------------------------------------------------------------------------------------------------------------------------------
16:52 2014/5/11
搞定了拖动视图滚动条时“拖影”和部分图形无法显示的bug
--------------------------------------------------------------------------------------------------------------------------------------------
9:02 2014/5/12
解决因为view改为scrollview带来的坐标问题
23:16 2014/5/12
完成了视图放大缩小功能
--------------------------------------------------------------------------------------------------------------------------------------------
20:55 2014/5/23
添加了设置更多线宽功能。
21:45 2014/5/23
添加了网格
22:01 2014/5/23
设置了view实现图形绘图时的光滑程度pg->SetSmoothingMode(SmoothingModeAntiAlias);
--------------------------------------------------------------------------------------------------------------------------------------------
11:56 2014/5/24
添加了缩放功能(按钮或鼠标滚轮都可以控制)
--------------------------------------------------------------------------------------------------------------------------------------------
14:04 2014/5/26 完成了文件保存和加载的功能。
--------------------------------------------------------------------------------------------------------------------------------------------
18:43 2014/6/1
添加了画布和视图客户区逻辑。画布是当前画图区域的大小,客户区是显示窗口的大小。
--------------------------------------------------------------------------------------------------------------------------------------------
12:18 2014/6/3
修改了贝塞尔曲线的缩放代码
TODO:修改界面的各种命令的图标
13:07 2014/6/3
添加键盘delete键了删除图形的功能
13:21 2014/6/3
添加了通过功能区命令删除图形的功能。