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

解决方案 »

  1.   

    热烈的关注之中.................
      

  2.   

    我想可以逆旋转已知的X,Y来得到旋转前在坐标系里面的位置,然后进行相关操作?
      

  3.   

    陨落雁:
        旋转的角度是由用户定义的,要得到各旋转点的坐标位置并非难事,真正不好办的是我上面说的一系列并行操作。你的意思我没太明白,能不能说详细点啊