G
gsh2000
Unregistered / Unconfirmed
GUEST, unregistred user!
在处理图元旋转时遇到问题:单个图元旋转好办,现在想对绘制的整个图形进行旋转。
所有的图元都以轴线为基准,即附在轴线上,要求图形旋转后,各图元的的系列操作,
如选取,移动,删除等仍以旋转后的轴线为基准。举个例子:轴线上有图元1,现在对整
个图形旋转后,再在轴线上绘制图元2(注意:我采取的绘制方式不是通过先按下鼠标
再拖拽来实现,而是单击后自动完成图元绘制),要求图元1仍以原来轴线为基准;或者想
在旋转后的图形中对图元1进行移动操作,要求图元1移动路线仍然以旋转后的轴线作参
照;或者增绘一条轴线,单击后绘出的轴线也是倾斜的,跟旋转后图形保持一致……等等
一系列相关操作。
我现在有两个想法:1,针对旋转操作专门编一个通用函数或过程,整个图形旋转后再
编辑时的所有操作都必须调用这个过程,即实时调用。显然,这种方法我认为是不科学的,
因为cad制图实时操作太多,在无法预知的情况很容易出错;而且这个通用函数的编法也是
个问题,因为各种图元的特征各不相同,而cad中的旋转跟图象的旋转是两码事,不能通过
逐行或逐列扫描各像素来实现,而应通过捕获特征点旋转后再重绘来实现。
2,我认为合理的方法:通过旋转逻辑坐标系来解决。设备坐标系不动,用户绘图
是在逻辑坐标系中完成,无论怎么旋转,图元在逻辑坐标系中的坐标保持不变。这样,
在用户进行旋转操作后,只需对逻辑坐标系旋转相应角度就可以了,上面的种种问题通通
解决。
我查了api,有设置映射模式等方面的函数,但没有发现对逻辑坐标系进行旋转操作的。
这种方法通常用什么方法解决啊?看在敲这么多字的份上说两句吧:)100分,不够再加!
所有的图元都以轴线为基准,即附在轴线上,要求图形旋转后,各图元的的系列操作,
如选取,移动,删除等仍以旋转后的轴线为基准。举个例子:轴线上有图元1,现在对整
个图形旋转后,再在轴线上绘制图元2(注意:我采取的绘制方式不是通过先按下鼠标
再拖拽来实现,而是单击后自动完成图元绘制),要求图元1仍以原来轴线为基准;或者想
在旋转后的图形中对图元1进行移动操作,要求图元1移动路线仍然以旋转后的轴线作参
照;或者增绘一条轴线,单击后绘出的轴线也是倾斜的,跟旋转后图形保持一致……等等
一系列相关操作。
我现在有两个想法:1,针对旋转操作专门编一个通用函数或过程,整个图形旋转后再
编辑时的所有操作都必须调用这个过程,即实时调用。显然,这种方法我认为是不科学的,
因为cad制图实时操作太多,在无法预知的情况很容易出错;而且这个通用函数的编法也是
个问题,因为各种图元的特征各不相同,而cad中的旋转跟图象的旋转是两码事,不能通过
逐行或逐列扫描各像素来实现,而应通过捕获特征点旋转后再重绘来实现。
2,我认为合理的方法:通过旋转逻辑坐标系来解决。设备坐标系不动,用户绘图
是在逻辑坐标系中完成,无论怎么旋转,图元在逻辑坐标系中的坐标保持不变。这样,
在用户进行旋转操作后,只需对逻辑坐标系旋转相应角度就可以了,上面的种种问题通通
解决。
我查了api,有设置映射模式等方面的函数,但没有发现对逻辑坐标系进行旋转操作的。
这种方法通常用什么方法解决啊?看在敲这么多字的份上说两句吧:)100分,不够再加!