WinAPI Графика - относительные координаты. Функции с параметрами

Содержание

Слайд 2

Нарисуем ромб

// Рисуем ромб
MoveToEx(hdc, 80, 0, NULL);
LineTo(hdc, 50, 50);
LineTo(hdc, 80, 100);
LineTo(hdc, 110,

Нарисуем ромб // Рисуем ромб MoveToEx(hdc, 80, 0, NULL); LineTo(hdc, 50, 50);
50);
LineTo(hdc, 80, 0);

Слайд 3

Ромб

// Рисуем ромб
MoveToEx(hdc, 80, 0, NULL);
LineTo(hdc, 50, 50);
LineTo(hdc, 80, 100);
LineTo(hdc, 110, 50);
LineTo(hdc,

Ромб // Рисуем ромб MoveToEx(hdc, 80, 0, NULL); LineTo(hdc, 50, 50); LineTo(hdc,
80, 0);

Слайд 4

Ромб

HPEN hPen;
hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
SelectObject(hdc, hPen);
// Рисуем ромб
MoveToEx(hdc, 80,

Ромб HPEN hPen; hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0)); SelectObject(hdc, hPen);
0, NULL);
LineTo(hdc, 50, 50);
LineTo(hdc, 80, 100);
LineTo(hdc, 110, 50);
LineTo(hdc, 80, 0);

Слайд 5

Относительные координаты

int x = 50;
int y = 0;
MoveToEx(hdc, x + 30, y,

Относительные координаты int x = 50; int y = 0; MoveToEx(hdc, x
NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);

Слайд 6

Относительные координаты

int x = 50;
int y = 0;
MoveToEx(hdc, x + 30, y,

Относительные координаты int x = 50; int y = 0; MoveToEx(hdc, x
NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);

Слайд 7

Относительные координаты

int x = 100;
int y = 100;
MoveToEx(hdc, x + 30, y,

Относительные координаты int x = 100; int y = 100; MoveToEx(hdc, x
NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);

int x = 150;
int y = 20;
MoveToEx(hdc, x + 30, y, NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);

Слайд 8

Относительные координаты

int x = 100;
int y = 100;
MoveToEx(hdc, x + 30, y,

Относительные координаты int x = 100; int y = 100; MoveToEx(hdc, x
NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);

int x = 150;
int y = 20;
MoveToEx(hdc, x + 30, y, NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);

Слайд 9

Относительные координаты

Относительные координаты

Слайд 10

Отдельная функция для отрисовки ромба с заданным положением

void Romb(HDC hdc, int x,

Отдельная функция для отрисовки ромба с заданным положением void Romb(HDC hdc, int
int y) {
MoveToEx(hdc, x + 30, y, NULL);
LineTo(hdc, x, y + 50);
LineTo(hdc, x + 30, y + 100);
LineTo(hdc, x + 60, y + 50);
LineTo(hdc, x + 30, y);
}

HDC hdc = BeginPaint(hWnd, &ps);
HPEN hPen;
hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
SelectObject(hdc, hPen);
Romb(hdc, 50, 0);

Слайд 11

Рисуем при помощи нашей функции несколько ромбов в ряд


HDC hdc = BeginPaint(hWnd,

Рисуем при помощи нашей функции несколько ромбов в ряд … HDC hdc
&ps);
Romb(hdc, 10, 50);
Romb(hdc, 100, 50);
Romb(hdc, 190, 50);
Romb(hdc, 280, 50);

Слайд 12

Рисуем при помощи нашей функции несколько ромбов – используем цикл


HPEN hPen;
hPen =

Рисуем при помощи нашей функции несколько ромбов – используем цикл … HPEN
CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
SelectObject(hdc, hPen);
int x = 10;
int y = 50;
do {
Romb(hdc, x, y);
x += 90;
} while (x <= 280);

Слайд 13

Рисуем при помощи нашей функции несколько ромбов – при помощи цикла


HPEN hPen;
hPen

Рисуем при помощи нашей функции несколько ромбов – при помощи цикла …
= CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
SelectObject(hdc, hPen);
int x = 10;
int y = 50;
do {
Romb(hdc, x, y);
x += 10;
} while (x <= 280);

Слайд 14

Рисуем при помощи нашей функции несколько ромбов – при помощи цикла


HPEN hPen;
hPen

Рисуем при помощи нашей функции несколько ромбов – при помощи цикла …
= CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
SelectObject(hdc, hPen);
int x = 10;
int y = 50;
do {
Romb(hdc, x, y);
x += 4;
} while (x <= 280);

Слайд 15

Рисуем при помощи нашей функции несколько ромбов – при помощи цикла


HPEN hPen;
hPen

Рисуем при помощи нашей функции несколько ромбов – при помощи цикла …
= CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
SelectObject(hdc, hPen);
int x = 10;
int y = 50;
do {
Romb(hdc, x, y);
x += 1;
} while (x <= 280);…

Слайд 16

Трассировка циклического алгоритма


HPEN hPen;
hPen = CreatePen(PS_SOLID, 3, RGB(0, 128, 0));
SelectObject(hdc, hPen);
int x

Трассировка циклического алгоритма … HPEN hPen; hPen = CreatePen(PS_SOLID, 3, RGB(0, 128,
= 10;
int y = 10;
do {
Romb(hdc, x, y);
y += 20;
} while (y <= 120);

Слайд 17

Трассировка циклического алгоритма (2) Установка точки останова

Трассировка циклического алгоритма (2) Установка точки останова

Слайд 18

Трассировка циклического алгоритма (3)

Трассировка циклического алгоритма (3)

Слайд 19

Трассировка циклического алгоритма (4)

Трассировка циклического алгоритма (4)

Слайд 20

Трассировка циклического алгоритма (5)

Трассировка циклического алгоритма (5)

Слайд 21

Трассировка циклического алгоритма (6) Запуск трассировки

Трассировка циклического алгоритма (6) Запуск трассировки

Слайд 22

Трассировка циклического алгоритма (7) (при)остановка в точке остановки

Трассировка циклического алгоритма (7) (при)остановка в точке остановки

Слайд 23

Трассировка циклического алгоритма (8) Пошаговая трассировка

Трассировка циклического алгоритма (8) Пошаговая трассировка

Слайд 24

Трассировка циклического алгоритма (9) Шаг сделан (F10)

Трассировка циклического алгоритма (9) Шаг сделан (F10)

Слайд 25

Трассировка циклического алгоритма (10) Еще шаг сделан (F10)

Трассировка циклического алгоритма (10) Еще шаг сделан (F10)

Слайд 26

Трассировка циклического алгоритма (11) Еще шаг сделан (F10)

Трассировка циклического алгоритма (11) Еще шаг сделан (F10)

Слайд 27

Трассировка циклического алгоритма (12) Еще шаг сделан

Трассировка циклического алгоритма (12) Еще шаг сделан

Слайд 28

Трассировка циклического алгоритма (13) Еще шаг сделан

Трассировка циклического алгоритма (13) Еще шаг сделан

Слайд 29

Трассировка циклического алгоритма (14) Еще шаг сделан

Трассировка циклического алгоритма (14) Еще шаг сделан

Слайд 30

Трассировка циклического алгоритма (15) Еще шаг сделан

Трассировка циклического алгоритма (15) Еще шаг сделан

Слайд 31

Трассировка циклического алгоритма (16) Возобновить выполнение

Трассировка циклического алгоритма (16) Возобновить выполнение

Слайд 32

Трассировка циклического алгоритма (17) Приложение работает!

Трассировка циклического алгоритма (17) Приложение работает!

Слайд 33

Изменяем сразу и X и Y


int x = 10;
int y = 50;
do

Изменяем сразу и X и Y … int x = 10; int
{
Romb(hdc, x, y);
x += 25;
y += 10;
} while (x <= 280);

Слайд 34

Автомобиль деда Мороза - логотип

Автомобиль деда Мороза - логотип

Слайд 35

Автомобиль деда Мороза - логотип

Автомобиль деда Мороза - логотип

Слайд 36

Автомобиль деда Мороза - логотип

Автомобиль деда Мороза - логотип

Слайд 37

Вынесли код в отдельную функцию

void StClausAuto(HDC hdc) {
// верхний треугольник
MoveToEx(hdc, 20, 0,

Вынесли код в отдельную функцию void StClausAuto(HDC hdc) { // верхний треугольник
NULL);
LineTo(hdc, 30, 20);
LineTo(hdc, 10, 20);
LineTo(hdc, 20, 0);
// средний треугольник
MoveToEx(hdc, 20, 10, NULL);
LineTo(hdc, 30, 40);
LineTo(hdc, 10, 40);
LineTo(hdc, 20, 10);
// нижний треугольник
MoveToEx(hdc, 20, 30, NULL);
LineTo(hdc, 40, 80);
LineTo(hdc, 0, 80);
LineTo(hdc, 20, 30);
}

Слайд 38

Относительные координаты

Относительные координаты

Слайд 39

Относительные координаты

Относительные координаты

Слайд 40

Задача 1.1: 5 логотипов по углам и в центре

Задача 1.1: 5 логотипов по углам и в центре

Слайд 41

Задача 1.1: 5 логотипов по углам и в центре

Задача 1.1: 5 логотипов по углам и в центре

Слайд 42

Задача 1.2: 8 логотипов в горизонтальную линию

Задача 1.2: 8 логотипов в горизонтальную линию

Слайд 43

Задача 1.2: 8 логотипов в горизонтальную линию Решение

Задача 1.2: 8 логотипов в горизонтальную линию Решение

Слайд 44

Задача 1.3: 4 логотипа в вертикальную линию

Задача 1.3: 4 логотипа в вертикальную линию

Слайд 45

Задача 1.3 - РЕШЕНИЕ: 4 логотипа в вертикальную линию

Задача 1.3 - РЕШЕНИЕ: 4 логотипа в вертикальную линию

Слайд 46

Задача 1.4: 4 логотипа в диагональную линию

Задача 1.4: 4 логотипа в диагональную линию

Слайд 47

Задача 2.1 – Создать картинку по образцу

Задача 2.1 – Создать картинку по образцу

Слайд 48

Задача 2.2 – Создать функцию SnowWoman

Задача 2.2 – Создать функцию SnowWoman

Слайд 49

Задача 2.3 – 2.6 – Создать 4 рисунков из снежных баб

Задача 2.3 – 2.6 – Создать 4 рисунков из снежных баб

Слайд 50

Домашнее задание

Доделать рисунки из Задач 1 и 2, которые не успели сделать

Домашнее задание Доделать рисунки из Задач 1 и 2, которые не успели
на занятии в классе.
Нарисовать для всех циклических алгоритмов блоксхему.
Создать в виде отдельной функции логотип любого автомобиля. Созданная фукнция должна иметь вид Logo(HDC hdc, int x, int y) . При этом сделать логотип такого размера, чтобы он вмещался по высоте окна не меньше 4 раз, по ширине не меньше 6 раз
Используя эту функцию создать узоры из логотипов по следующим 4 схемам:
Для последнего узора нарисовать блоксхему алгоритма.
Имя файла: WinAPI-Графика---относительные-координаты.-Функции-с-параметрами.pptx
Количество просмотров: 45
Количество скачиваний: 0