绘制颜色渐变三角形
填充效果如下:
?
?? 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);
}
?
?
?
總結
- 上一篇: 改变 this 指向的 call 和 a
- 下一篇: java单位数_java – 优化代码