mirror of
https://github.com/Kaehvaman/OAIP.git
synced 2025-01-31 09:28:24 +04:00
add star to lab18
This commit is contained in:
parent
093abbf082
commit
45d6ed7c65
@ -126,7 +126,7 @@ void drawNet(HDC hdc, int width, int height, int hstep, int vstep) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void drawTriangle(HDC hdc, int cx, int cy, int size) {
|
void drawTriangle(HDC hdc, int cx, int cy, int size) {
|
||||||
HPEN hPen = CreatePen(PS_SOLID, 4, RGB(78, 201, 176));
|
HPEN hPen = CreatePen(PS_SOLID, 3, RGB(78, 201, 176));
|
||||||
SelectObject(hdc, hPen);
|
SelectObject(hdc, hPen);
|
||||||
|
|
||||||
POINT p[4] = {
|
POINT p[4] = {
|
||||||
@ -141,7 +141,7 @@ void drawTriangle(HDC hdc, int cx, int cy, int size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void drawHourglass(HDC hdc, int cx, int cy, int size) {
|
void drawHourglass(HDC hdc, int cx, int cy, int size) {
|
||||||
HPEN hPen = CreatePen(PS_SOLID, 4, RGB(78, 180, 200));
|
HPEN hPen = CreatePen(PS_SOLID, 3, RGB(78, 180, 200));
|
||||||
SelectObject(hdc, hPen);
|
SelectObject(hdc, hPen);
|
||||||
|
|
||||||
POINT p[5] = {
|
POINT p[5] = {
|
||||||
@ -156,6 +156,42 @@ void drawHourglass(HDC hdc, int cx, int cy, int size) {
|
|||||||
DeleteObject(hPen);
|
DeleteObject(hPen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawRomb(HDC hdc, int cx, int cy, int size) {
|
||||||
|
HPEN hPen = CreatePen(PS_SOLID, 3, RGB(78, 201, 176));
|
||||||
|
SelectObject(hdc, hPen);
|
||||||
|
|
||||||
|
POINT p[5] = {
|
||||||
|
cx, cy - size,
|
||||||
|
cx + size, cy,
|
||||||
|
cx, cy + size,
|
||||||
|
cx - size, cy,
|
||||||
|
cx, cy - size,
|
||||||
|
};
|
||||||
|
Polyline(hdc, p, 5);
|
||||||
|
|
||||||
|
DeleteObject(hPen);
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawStar(HDC hdc, int cx, int cy, int size) {
|
||||||
|
HPEN hPen = CreatePen(PS_SOLID, 3, RGB(78, 180, 200));
|
||||||
|
SelectObject(hdc, hPen);
|
||||||
|
|
||||||
|
POINT p[9] = {
|
||||||
|
cx, cy - size,
|
||||||
|
cx + size / 4, cy - size / 4,
|
||||||
|
cx + size, cy,
|
||||||
|
cx + size / 4, cy + size / 4,
|
||||||
|
cx, cy + size,
|
||||||
|
cx - size / 4, cy + size / 4,
|
||||||
|
cx - size, cy,
|
||||||
|
cx - size / 4, cy - size / 4,
|
||||||
|
cx, cy - size
|
||||||
|
};
|
||||||
|
Polyline(hdc, p, 9);
|
||||||
|
|
||||||
|
DeleteObject(hPen);
|
||||||
|
}
|
||||||
|
|
||||||
void drawRecursiveTriangle(HDC hdc, int cx, int cy, int size, int mode) {
|
void drawRecursiveTriangle(HDC hdc, int cx, int cy, int size, int mode) {
|
||||||
drawTriangle(hdc, cx, cy, size);
|
drawTriangle(hdc, cx, cy, size);
|
||||||
|
|
||||||
@ -174,11 +210,42 @@ void drawRecursiveHourglass(HDC hdc, int cx, int cy, int size, int mode) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawRecursiveHourglass(hdc, cx - size / 2, cy - size, size / 2, mode);
|
if (mode >= 1 && mode < 4) drawRecursiveHourglass(hdc, cx - size / 2, cy - size, size / 2, mode);
|
||||||
|
if (mode >= 2 && mode < 4) drawRecursiveHourglass(hdc, cx + size / 2, cy - size, size / 2, mode);
|
||||||
|
if (mode >= 3 && mode < 5) {
|
||||||
|
drawRecursiveHourglass(hdc, cx - size, cy + size, size / 2, mode);
|
||||||
|
drawRecursiveHourglass(hdc, cx + size, cy + size, size / 2, mode);
|
||||||
|
}
|
||||||
|
if (mode == 5 || mode == 7) drawRecursiveHourglass(hdc, cx - size, cy, size / 2, mode);
|
||||||
|
if (mode == 6 || mode == 7) drawRecursiveHourglass(hdc, cx + size, cy, size / 2, mode);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawRecursiveRomb(HDC hdc, int cx, int cy, int size, int mode) {
|
||||||
|
drawRomb(hdc, cx, cy, size);
|
||||||
|
if (size < 20) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
drawRecursiveRomb(hdc, cx - size, cy, size / 2, mode);
|
||||||
|
drawRecursiveRomb(hdc, cx + size, cy, size / 2, mode);
|
||||||
|
if (mode == 1 || mode == 3) drawRecursiveRomb(hdc, cx, cy + size, size / 2, mode);
|
||||||
|
if (mode == 2 || mode == 3) drawRecursiveRomb(hdc, cx, cy - size, size / 2, mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawRecursiveStar(HDC hdc, int cx, int cy, int size, int mode) {
|
||||||
|
drawStar(hdc, cx, cy, size);
|
||||||
|
if (size < 20) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mode == drawRecursiveStar(hdc, cx - size, cy, size / 2, mode);
|
||||||
|
drawRecursiveStar(hdc, cx + size, cy, size / 2, mode);
|
||||||
|
if (mode == 1 || mode == 3) drawRecursiveStar(hdc, cx, cy + size, size / 2, mode);
|
||||||
|
if (mode == 2 || mode == 3) drawRecursiveStar(hdc, cx, cy - size, size / 2, mode);
|
||||||
|
}
|
||||||
|
|
||||||
int trmode = 0;
|
int trmode = 0;
|
||||||
|
int hgmode = 0;
|
||||||
|
int rbmode = 0;
|
||||||
int imageVar = 0;
|
int imageVar = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -224,7 +291,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||||||
if (netToggle) drawNet(hdc, rect.right, rect.bottom, 50, 50);
|
if (netToggle) drawNet(hdc, rect.right, rect.bottom, 50, 50);
|
||||||
|
|
||||||
drawRecursiveTriangle(hdc, 300, 300, 100, trmode);
|
drawRecursiveTriangle(hdc, 300, 300, 100, trmode);
|
||||||
drawRecursiveHourglass(hdc, 600, 300, 100, trmode);
|
drawRecursiveHourglass(hdc, 600, 300, 100, hgmode);
|
||||||
|
|
||||||
|
//drawRecursiveRomb(hdc, 1100, 300, 100, rbmode);
|
||||||
|
drawRecursiveStar(hdc, 1100, 300, 100, rbmode);
|
||||||
|
|
||||||
EndPaint(hWnd, &ps);
|
EndPaint(hWnd, &ps);
|
||||||
}
|
}
|
||||||
@ -238,7 +308,11 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
trmode++;
|
trmode++;
|
||||||
|
hgmode++;
|
||||||
|
rbmode++;
|
||||||
if (trmode > 5) trmode = 0;
|
if (trmode > 5) trmode = 0;
|
||||||
|
if (hgmode > 7) hgmode = 0;
|
||||||
|
if (rbmode > 3) rbmode = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
InvalidateRect(hWnd, NULL, TRUE);
|
InvalidateRect(hWnd, NULL, TRUE);
|
||||||
|
Loading…
Reference in New Issue
Block a user