c++ 矩形与多边形的相交结果 1 没有结果 2 结果有1个或多个多边形,如何将每个多边形的节点得到?

解决方案 »

  1.   

    CombineRgn
    The CombineRgn function combines two regions and stores the result in a third region. The two regions are combined according to the specified mode. int CombineRgn(
      HRGN hrgnDest,      // handle to destination region
      HRGN hrgnSrc1,      // handle to source region
      HRGN hrgnSrc2,      // handle to source region
      int fnCombineMode   // region combining mode
    );
    Parameters
    hrgnDest 
    [in] Handle to a new region with dimensions defined by combining two other regions. (This region must exist before CombineRgn is called.) 
    hrgnSrc1 
    [in] Handle to the first of two regions to be combined. 
    hrgnSrc2 
    [in] Handle to the second of two regions to be combined. 
    fnCombineMode 
    [in] Specifies a mode indicating how the two regions will be combined. This parameter can be one of the following values. Value Description 
    RGN_AND Creates the intersection of the two combined regions. 
    RGN_COPY Creates a copy of the region identified by hrgnSrc1. 
    RGN_DIFF Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. 
    RGN_OR Creates the union of two combined regions. 
    RGN_XOR Creates the union of two combined regions except for any overlapping areas. 
    Return Values
    The return value specifies the type of the resulting region. It can be one of the following values. Value Meaning 
    NULLREGION The region is empty. 
    SIMPLEREGION The region is a single rectangle. 
    COMPLEXREGION The region is more than a single rectangle. 
    ERROR No region is created. 
      

  2.   

    CombineRgn并不能实现你的要求,CombineRgn的结果只是告诉你哪个点在交集的区域内,
    对于简单图形——矩形与多边形的交叉,你不如用最直接的数学公式计算出交点