none
有关填充多边形的问题 RRS feed

  • 问题

  • 使用CDC类填充一一些多边形,出现了一些黑边。然后查MSDN:
    CDC::Polygon  
    BOOL Polygon( LPPOINT lpPoints, int nCount );

    Return Value

    Nonzero if the function is successful; otherwise 0.

    Parameters

    lpPoints

    Points to an array of points that specifies the vertices of the polygon. Each point in the array is a POINT structure or a CPoint object.

    nCount

    Specifies the number of vertices in the array.

    Remarks

    Draws a polygon consisting of two or more points (vertices) connected by lines, using the current pen. The system closes the polygon automatically, if necessary, by drawing a line from the last vertex to the first.  

      我估计是The system closes the polygon automatically, if necessary, by drawing a line from the last vertex to the first. 造成的。请问 if necessary有哪些情况呢?还有传入该函数的组成多边形的点是否有顺序要求呢?如果有要求,是顺时针还是逆时针呢?
    前无古人,后无来者
    2011年2月16日 3:27

答案

  • 会根据点的顺序,从第一个画到最后一个。顺时针还是逆时针,是根据你放入的顺序决定的。如果你的第一个点和最后一个点不闭合,就是if necessary,系统会从最后一个点向第一个点画条直线,使多边形闭合。
    麻烦把正确答案设为解答。
    2011年2月16日 6:06
    版主
  • 我不系大侠,你说的是对的,否则会帮你作闭合


    麻烦把正确答案设为解答。
    2011年2月20日 2:40
    版主

全部回复

  • 会根据点的顺序,从第一个画到最后一个。顺时针还是逆时针,是根据你放入的顺序决定的。如果你的第一个点和最后一个点不闭合,就是if necessary,系统会从最后一个点向第一个点画条直线,使多边形闭合。
    麻烦把正确答案设为解答。
    2011年2月16日 6:06
    版主


  • 会根据点的顺序,从第一个画到最后一个。顺时针还是逆时针,是根据你放入的顺序决定的。如果你的第一个点和最后一个点不闭合,就是if necessary,系统会从最后一个点向第一个点画条直线,使多边形闭合。
    麻烦把正确答案设为解答。
          大侠,照你所说,顺时针或者逆时针都是可以的,是吗?你说的如果你的第一个点和最后一个点不闭合是指,最后一个点的坐标值必须要等于第一个点的坐标值,是吧。
    前无古人,后无来者
    2011年2月16日 6:15
  • 我不系大侠,你说的是对的,否则会帮你作闭合


    麻烦把正确答案设为解答。
    2011年2月20日 2:40
    版主