Основы программирования. Вложенные циклы. Лабораторная работа №15

Содержание

Слайд 2

*Задача 2 (ЛР14) – пример кода через Polyline

*Задача 2 (ЛР14) – пример кода через Polyline

Слайд 3

Звезда с разными шириной и высотой

void Star(HDC hdc, int cx, int cy,

Звезда с разными шириной и высотой void Star(HDC hdc, int cx, int
int sizeX, int sizeY) {
POINT p[9] = {
cx, cy - sizeY,
cx + sizeX / 4, cy - sizeY / 4,
cx + sizeX, cy,
cx + sizeX / 4, cy + sizeY / 4,
cx, cy + sizeY,
cx - sizeX / 4, cy + sizeY / 4,
cx - sizeX, cy,
cx - sizeX / 4, cy - sizeY / 4,
cx, cy - sizeY
};
Polyline(hdc, p, 9);
}

Слайд 4

Звезда с разными шириной и высотой

Звезда с разными шириной и высотой

Слайд 5

Звёзды в ряд! (горизонтальный)

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int y =

Звёзды в ряд! (горизонтальный) case WM_PAINT: { PAINTSTRUCT ps; HDC hdc =
50;
int sizeY = 30;
int x = 50;
int sizeX = 10;
while (x <= 900) {
Star(hdc, x, y, sizeX, sizeY);
x += 100;
sizeX += 5;
}
EndPaint(hWnd, &ps);
}

Слайд 6

Звёзды в ряд! (вертикальный)

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int y =

Звёзды в ряд! (вертикальный) case WM_PAINT: { PAINTSTRUCT ps; HDC hdc =
50;
int sizeY = 10;
int x = 50;
int sizeX = 40;
while (y < 400) {
Star(hdc, x, y, sizeX, sizeY);
y += 100;
sizeY += 10;
}
EndPaint(hWnd, &ps);
}

Слайд 7

Звёзды в ряд! (диагональный)

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int y =

Звёзды в ряд! (диагональный) case WM_PAINT: { PAINTSTRUCT ps; HDC hdc =
50;
int sizeY = 20;
int x = 50;
int sizeX = 10;
while (y < 400) {
Star(hdc, x, y, sizeX, sizeY);
x += 100;
sizeX += 8;
y += 50;
sizeY += 2;
}
EndPaint(hWnd, &ps);
}

Слайд 8

Звёзды в ряды!

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int y =

Звёзды в ряды! case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd,
50;
int sizeY = 10;
while (y < 400) {
int x = 50;
int sizeX = 10;
while (x < 900) {
Star(hdc, x, y, sizeX, sizeY);
x += 100;
sizeX += 5;
}
y += 100;
sizeY += 10;
}
EndPaint(hWnd, &ps);
}

Слайд 9

Звёзды в ряды! (порядок рисования!!!)

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
int y

Звёзды в ряды! (порядок рисования!!!) case WM_PAINT: { PAINTSTRUCT ps; HDC hdc
= 50;
int sizeY = 10;
while (y < 400) {
int x = 50;
int sizeX = 10;
while (x < 900) {
Star(hdc, x, y, sizeX, sizeY);
Sleep(100);
x += 100;
sizeX += 5;
}
y += 100;
sizeY += 10;
}
EndPaint(hWnd, &ps);
}

Слайд 10

Звёзды в ряды! В отдельной функции

void BlockStars(HDC hdc) {
int y = 50;
int

Звёзды в ряды! В отдельной функции void BlockStars(HDC hdc) { int y
sizeY = 10;
while (y < 400) {
int x = 50;
int sizeX = 10;
while (x < 900) {
Star(hdc, x, y, sizeX, sizeY);
x += 100;
sizeX += 5;
}
y += 100;
sizeY += 10;
}
}

Слайд 11

Треугольник с разными шириной, высотой и цветом

void Triangle(HDC hdc, int cx, int

Треугольник с разными шириной, высотой и цветом void Triangle(HDC hdc, int cx,
cy, int sizeX, int sizeY, COLORREF color) {
POINT p[] = {
cx - sizeX, cy - sizeY,
cx + sizeX, cy - sizeY,
cx, cy + sizeY,
cx - sizeX, cy - sizeY
};
HPEN hPen;
hPen = CreatePen(PS_SOLID, 2, color);
SelectObject(hdc, hPen);
Polyline(hdc, p, 4);
DeleteObject(hPen);
}
...
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
Triangle(hdc, 400, 300, 200, 100, RGB(255, 0, 0));
EndPaint(hWnd, &ps);
}

Слайд 12

Треугольник с разными шириной, высотой и цветом

Треугольник с разными шириной, высотой и цветом

Слайд 13

Некоторые цвета

https://www.mta-resource.ru/wiki/article/id/23

Некоторые цвета https://www.mta-resource.ru/wiki/article/id/23

Слайд 14

Треугольники в ряд! (горизонтальный)

void BlockTriangles1(HDC hdc) {
int y = 50;
int sizeY =

Треугольники в ряд! (горизонтальный) void BlockTriangles1(HDC hdc) { int y = 50;
10;
int r = 0;
int b = 0;
int g = 0;
int x = 50;
int sizeX = 10;
while (x < 900) {
Triangle(hdc, x, y, sizeX, sizeY, RGB(r, g, b));
x += 100;
sizeX += 5;
g += 30;
}
}

Слайд 15

Треугольники в ряд! (вертикальный)

Треугольники в ряд! (вертикальный)

Слайд 16

Треугольники в ряд! (диагональный)

Треугольники в ряд! (диагональный)

Слайд 17

Треугольники в несколько рядов!

Треугольники в несколько рядов!

Слайд 18

Треугольники в несколько рядов! (порядок!)

Треугольники в несколько рядов! (порядок!)

Слайд 19

Корона с разными шириной, высотой и цветом

void Сrown(HDC hdc, int cx, int

Корона с разными шириной, высотой и цветом void Сrown(HDC hdc, int cx,
cy, int sizeX, int sizeY, COLORREF color) {
POINT p[] = {
cx, cy - sizeY,
cx + sizeX / 2, cy,
cx + sizeX, cy - sizeY,
cx + sizeX, cy + sizeY,
cx - sizeX, cy + sizeY,
cx - sizeX, cy - sizeY,
cx - sizeX / 2, cy,
cx, cy - sizeY
};
HPEN hPen;
hPen = CreatePen(PS_SOLID, 3, color);
SelectObject(hdc, hPen);
Polyline(hdc, p, 8);
DeleteObject(hPen);
}

Слайд 20

Корона с разными шириной, высотой и цветом

Корона с разными шириной, высотой и цветом

Слайд 21

Задача 1.1

Вывести короны в горизонтальный ряд (с изменением ширины и с изменением

Задача 1.1 Вывести короны в горизонтальный ряд (с изменением ширины и с
цвета). Какой цвет менять – на ваш выбор (RED, GREEN, BLUE) .

Слайд 22

Задача 1.2

Вывести короны в вертикальный ряд (с изменением высоты и с изменением

Задача 1.2 Вывести короны в вертикальный ряд (с изменением высоты и с
цвета – отличного от изменения по горизонтали). Какой цвет менять – на ваш выбор (RED, GREEN, BLUE) .

Слайд 23

Задача 1.3

Вывести короны в диагональный ряд (с одновременным изменением ширины, высоты и

Задача 1.3 Вывести короны в диагональный ряд (с одновременным изменением ширины, высоты и изменением двух цветов).
изменением двух цветов).

Слайд 24

Задача 1.4

Вывести короны в виде блока (несколько рядов по несколько корон).

Задача 1.4 Вывести короны в виде блока (несколько рядов по несколько корон).

Слайд 25

Задача 2.0

Создать функцию MyFigure() для отрисовки своей собственной фигуры – с возможностью

Задача 2.0 Создать функцию MyFigure() для отрисовки своей собственной фигуры – с
изменения ширины, высоты и цвета.
Прототип функции должен выглядеть следующим образом:
void MyFigure(HDC hdc, int cx, int cy, int sizeX, int sizeY, COLORREF color);
Ваша собственная фигура должна быть отрисована при помощи Polyline() или Polygon(). Должна содержать не менее 4 разных точек.

Слайд 26

Задача 2.1

Вывести MyFigure() (созданный в задаче 2.0) в горизонтальный ряд (с изменением

Задача 2.1 Вывести MyFigure() (созданный в задаче 2.0) в горизонтальный ряд (с
ширины и с изменением цвета). Какой цвет менять – на ваш выбор (RED, GREEN, BLUE) .

Слайд 27

Задача 2.2

Вывести MyFigure() (созданный в задаче 2.0) в вертикальный ряд (с изменением

Задача 2.2 Вывести MyFigure() (созданный в задаче 2.0) в вертикальный ряд (с
высоты и с изменением цвета – отличного от изменения по горизонтали). Какой цвет менять – на ваш выбор (RED, GREEN, BLUE) .

Слайд 28

Задача 2.3

Вывести MyFigure() (созданный в задаче 2.0) в диагональный ряд (с одновременным

Задача 2.3 Вывести MyFigure() (созданный в задаче 2.0) в диагональный ряд (с
изменением ширины, высоты и изменением двух цветов).

Слайд 29

Задача 2.4

Вывести MyFigure() (созданный в задаче 2.0) в виде блока (несколько рядов

Задача 2.4 Вывести MyFigure() (созданный в задаче 2.0) в виде блока (несколько рядов по несколько корон).
по несколько корон).

Слайд 30

Задача 3

В Игре 1 небо заполнить 3-5 блоками разных фигур (звезды, короны,

Задача 3 В Игре 1 небо заполнить 3-5 блоками разных фигур (звезды, короны, MyFigure() и т.п.).
MyFigure() и т.п.).
Имя файла: Основы-программирования.-Вложенные-циклы.-Лабораторная-работа-№15.pptx
Количество просмотров: 22
Количество скачиваний: 0