绘制颜色渐变三角形

填充效果如下:

绘制颜色渐变三角形_第1张图片

 

   P1, P2, P3为三角形三个点

   cP1, cP2, cP3为三角形三点所指定的颜色。

   void  DrawTriangle(CDC *pDC,POINT P1,POINT P2,POINT P3,

              COLORREF cP1,COLORREF cP2,COLORREF cP3)

  {

       TRIVERTEX        vert [4] ;

       vert [0] .x       =  P1.x;

       vert [0] .y       =  P1.y;

       vert [0].Red=GetRValue(cP1)<<8;

       vert [0].Green=GetGValue(cP1)<<8;

       vert [0].Blue=GetBValue(cP1)<<8;

       vert [0] .Alpha   =  0;

      

       vert [1] .x       =  P2.x;

       vert [1] .y       =  P2.y;

       vert [1].Red=GetRValue(cP2)<<8;

       vert [1].Green=GetGValue(cP2)<<8;

       vert [1].Blue=GetBValue(cP2)<<8;

       vert [1] .Alpha   =  0;

      

       vert [2] .x      =  P3.x;

       vert [2] .y       =  P3.y;

       vert [2].Red=GetRValue(cP3)<<8;

       vert [2].Green=GetGValue(cP3)<<8;

       vert [2].Blue=GetBValue(cP3)<<8;

       vert [2] .Alpha   =  0;

      

       _GRADIENT_TRIANGLE  gTRi[1];

      

       gTRi[0].Vertex1   = 0;

       gTRi[0].Vertex2   = 1;

       gTRi[0].Vertex3   = 2;

       handle_GradientFill(pDC->GetSafeHdc(),vert,4,&gTRi,1,GRADIENT_FILL_TRIANGLE);

}

 

 

 

你可能感兴趣的:(Windows)