绘制颜色渐变三角形

来源:互联网 发布:经传软件ipad版 编辑:程序博客网 时间:2024/06/05 21:42

填充效果如下:

颜色渐变的三角形绘制

 

   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);

}

 

 

 

原创粉丝点击