图元的变换可以归结为点的变换,首先在position类中添加点的变换函数。 内容来自论文无忧网 www.paper51.com (1) 平移变换 内容来自www.paper51.com
移动后点的坐标值等于移动前点的坐标值与位移矢量的和。在position类中添加pntmove函数,该函数有两个参数xx和yy,分别定义移动矢量的水平向分量和垂直向分量。在直角坐标系中,当xx或yy为正时,点向右、向上移动;当xx或yy为负时,点向左、向下移动。函数返回一个position类实例,为移动后的点。 paper51.com (2) 旋转变换 内容来自论文无忧网 www.paper51.com 旋转一个点需要确定两个参数,既旋转的参照点和旋转的角度。参照点指的是饶哪个点旋转。在position类中添加pntrotate函数,定义点的旋转行为。Pntrotate函数有两个参数,即basepos和angle分别定义旋转参照点和旋转角度。旋转后点的坐标可以根据原理部分的计算公式获得。, paper51.com 二. 图元的变换 paper51.com
1. 直线段的几何变换 copyright paper51.com (1) 直线段的平移变换 http://www.paper51.com 直线段的平移变换实际上是对直线段的起点和终点作平移变换,然后将变换后的起点和终点用直线段相连接。在cline类模块中添加CGElement_Move过程,定义直线段的平移变换。该函数有两个参数,即basepos和despos,分别定义平移前后的相对位置。平移前直线段上任一点到basepos点的距离和方向与平移后直线段上对应点到despos点的距离和方向是相同的。两个点横坐标之间和纵坐标之间的差异分别表示横向和纵向移动的距离和方向。 内容来自论文无忧网 www.paper51.com ' 内容来自论文无忧网 www.paper51.com (2)直线段的旋转变换 copyright paper51.com 通过旋转直线段的起点和终点,可以实现直线段的旋转。在cline类模块中添加CGElement_Rotate过程,该过程的两个参数basepos和angle分别定义旋转的基点和角度。 http://www.paper51.com 2. 多义线的几何变换 copyright paper51.com (1)多义线的平移变换 内容来自论文无忧网 www.paper51.com 多义线的平移变换可通过平移多义线的顶点来实现。在cpolyline类模块中添加CGElement_Move过程,以描述多义线的平移变换。 内容来自www.paper51.com (2)多义线的旋转变换 http://www.paper51.com 在cpolyline类模块中添加CGElement_Rotate过程,通过对多义线的顶点进行旋转变换来实现多义线的旋转变换。 copyright paper51.com 3. 圆的几何变换 copyright paper51.com
(1)圆的平移变换 http://www.paper51.com 圆的平移动变换通过对圆的圆心和圆上一点进行平移变换类实现。在ccircle类模块中添加CGElement_Move函数,描述圆的平移变换。 copyright paper51.com (2)圆的旋转变换 内容来自www.paper51.com 在ccircle类模块中添加CGElement_Rotate过程,通过对圆心和圆上一点进行旋转变换来实现圆的旋转变换。 paper51.com 4. 圆弧的几何变换 copyright paper51.com
(1) 圆弧的平移变换 paper51.com 在carc类模块中添加CGElement_Move过程,实现圆弧的平移变换。 内容来自论文无忧网 www.paper51.com (2)圆弧的旋转变换 内容来自www.paper51.com 在carc类模块中添加CGElement_Rotate过程,对圆弧的圆心、起点和终点进行旋转变换。 paper51.com 2.3 图形变换交互功能的实现 http://www.paper51.com 2.3.1 平移变换—CMOVE类 paper51.com 平移变换的交互过程通过CMOVE类来实现。该类利用鼠标单击和移动事件代码来描述各种图元进行平移变换时的交互过程。该类实现了Ccommand接口。 内容来自论文无忧网 www.paper51.com 内容来自www.paper51.com http://www.paper51.com 2.3.2旋转变换 内容来自论文无忧网 www.paper51.com 通过创建CRotate类来进行描述。通过响应鼠标单击和移动事件来用图形显示图元旋转的基点和角度。 copyright paper51.com copyright paper51.com
http://www.paper51.com 2.4 删除图元 paper51.com 包括内存删除和屏幕删除两部分。 内容来自论文无忧网 www.paper51.com
4.3图元的拾取与选择 http://www.paper51.com 要实现上面的图元的编辑首先要实现图元的拾取功能。 内容来自www.paper51.com 图元的拾取是指计算机识别图元的方法。图元的选择是把已经识别的图元单独保存,以备修改和编辑。 内容来自论文无忧网 www.paper51.com 一.包围矩形的计算 内容来自论文无忧网 www.paper51.com
包围矩形指能包围图元的最小矩形。 paper51.com (1)直线段的包围矩形 内容来自论文无忧网 www.paper51.com 直线段的包围矩形是以直线段的起点和终点为对角顶点的矩形。 paper51.com |