问题1
有一个N点多边形,生成一个缩小的平行多边,指定距离参数,要求每一边缩进指定距离后与原有的边相平行,如果原有线过短,缩小后两边相邻线会有交点,所以过短线后会自动被删除。
问题2
有一个N点多边形,生成一个放大的平行多边,指定距离参数,要求每一边放大指定距离后与原有的边
相平行,每条放大后的线段之间自动连接。其实这是一个图形偏移的问题,清注意不是图形放大缩小的问题。
请兄弟们指点一下。

解决方案 »

  1.   

    http://blog.csdn.net/happy__888/archive/2005/03/09/315762.aspx
      

  2.   

    其实csdn上关于这个问题讨论过好几次了
    这里是一个综合的描述:
       http://dev.csdn.net/develop/article/13/13811.shtm
    这是另外一个:
       http://search.csdn.net/Expert/topic/162/162357.xml?temp=.4461634
      

  3.   

    利用坐标变换比较方便,看看GIS中的缓冲区的生成。
      

  4.   

    happy_888,能不能把你的Blog上的图片传给我,参考一下,谢谢啦[email protected]
      

  5.   

    既然是缩放,就有一上中心点,即以哪一点为缩放中心
    然后将所有顶点到中心点的距离乘以放大倍数,就得到新顶点的位置POINT ptCenter; // 缩放中心点
    double k = 2; // 缩放比例对每个顶点做下面的计算
    POINT pt;
    pt.x = ptCenter.x + (pt.x - ptCenter.x) * k;
    pt.x = ptCenter.y + (pt.y - ptCenter.y) * k;再连接新的顶点就得到缩放后的多边形
      

  6.   

    是啊,这绝对不是缩放的问题,而是CAD里的offset
    我的这个多边形是由直线,圆弧(向内或向外),曲线组成的多边形,每条边当前不互相交叉.
    这样的多边形的平行多边形不好求,非常苦恼.还要考虑当D值过大,有的边过小的情况下,两边的边会盖掉原来的边,就是说新的多边形的边数不一定等于原有的多边形的边数.不知道道老大们有没有这方面的答案.