1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
void
DrawSierpinski(HDC hDC,int x1,int y1,int x2,int y2)
{
if(((x2-x1)/3)>1){
Rectangle(hDC,(2*x1+x2)/3,(2*y1+y2)/3,(x1+2*x2)/3, (y1+2*y2)/3);
//Sleep(1);
DrawSierpinski(hDC, (2*x1+x2)/3, y1, (x1+2*x2)/3, (2*y1+y2)/3); //up
DrawSierpinski(hDC, (x1+2*x2)/3,y1,x2,(2*y1+y2)/3); //up right
DrawSierpinski(hDC, (x1+2*x2)/3,(2 * y1 + y2) / 3.0,x2,(y1+2*y2)/3); //right
DrawSierpinski(hDC, (x1+2*x2)/3,(y1+2*y2)/3,x2,y2); // down right
DrawSierpinski(hDC, (2*x1+x2)/3, (y1+2*y2)/3,(x1 + 2*x2)/3.0,y2); //down
DrawSierpinski(hDC, x1, (y1+2*y2) / 3.0, (2*x1+x2)/3,y2); //down left
DrawSierpinski(hDC, x1, (2*y1+y2)/3,(2*x1+x2)/3, (y1+2*y2)/3); //left
DrawSierpinski(hDC, x1, y1, (2*x1+x2)/3, (2*y1+y2)/3); //up left
}
} |
Partager