WinAPI Графика – Знакомство с функциями Ellipse, Arc, Chord, Pie. Лабораторная работа №8

Содержание

Слайд 2

Что будем рисовать

Что будем рисовать

Слайд 3

Чем будем рисовать

https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm
Рисование дуги эллипса
функция Arc позволяет нарисовать дугу эллипса или

Чем будем рисовать https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm Рисование дуги эллипса функция Arc позволяет нарисовать дугу
окружности:
BOOL WINAPI Arc(
HDC hdc, // идентификатор контекста отображения
int nxLeft, int nyTop, // верхий левый угол
int nxRight, int nyBottom, // правый нижний угол
int nxStart, int nyStart, // начало дуги
int nxEnd, int nyEnd); // конец дуги
Первый параметр этой функции определяет контекст отображения, в котором будет нарисована дуга.

Слайд 4

Чем будем рисовать

https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm
Рисование эллипса
Для рисования эллипса вы можете использовать функцию Ellipse :

Чем будем рисовать https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm Рисование эллипса Для рисования эллипса вы можете использовать

BOOL WINAPI Ellipse(
HDC hdc, // идентификатор контекста отображения
int nxTL, // координата x верхнего левого угла
int nyTL, // координата y верхнего левого угла
int nxBR, // координата x правого нижнего угла
int nyBR); // координата y правого нижнего угла
Первый параметр этой функции указывает идентификатор контекста отображения, остальные - координаты верхнего левого и правого нижнего углов прямоугольника, в который должен быть вписан эллипс

Слайд 5

Чем будем рисовать

https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm
Рисование сегмента эллипса
Сегмент эллипса можно нарисовать при помощи функции

Чем будем рисовать https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm Рисование сегмента эллипса Сегмент эллипса можно нарисовать при
Chord :
BOOL WINAPI Chord(
HDC hdc, // идентификатор контекста отображения
int nxLeft, int nyTop, // верхий левый угол
int nxRight, int nyBottom, // правый нижний угол
int nxStart, int nyStart, // начало дуги
int nxEnd, int nyEnd); // конец дуги
Параметры этой функции аналогичны параметрам рассмотренной нами ранее функции Arc.

Слайд 6

Чем будем рисовать

https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm
Рисование сектора эллипса
Для рисования сектора эллипса следует использовать функцию

Чем будем рисовать https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm Рисование сектора эллипса Для рисования сектора эллипса следует
Pie , аналогичную по своим параметрам функциям Arc и Chord:
BOOL WINAPI Pie(
HDC hdc, // идентификатор контекста отображения
int nxLeft, int nyTop, // верхний левый угол
int nxRight, int nyBottom, // правый нижний угол
int nxStart, int nyStart, // начало дуги
int nxEnd, int nyEnd); // конец дуги

Слайд 7

Где будем рисовать

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

Где будем рисовать Для отрисовки каждого предмета будем использовать отдельную функцию

Слайд 8

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.
Отрисовку

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это
эмблемы олимпиады сделать в отдельной функции.

Слайд 9

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Слайд 10

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Слайд 11

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Слайд 12

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Слайд 13

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Слайд 14

Задача 1

Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Задача 1 Нарисовать олимпийскую эмблему – настолько близко к оригиналу, насколько это возможно.

Слайд 15

Задача 1 - код

void OlympicEmblem(HDC hdc) {
// Кисть - прозрачная
SelectObject(hdc, GetStockObject(NULL_BRUSH));
// верхний

Задача 1 - код void OlympicEmblem(HDC hdc) { // Кисть - прозрачная
ряд колец
HPEN hPen = CreatePen(PS_SOLID, 5, RGB(0, 0, 255));
SelectObject(hdc, hPen);
Ellipse(hdc, 20, 40, 60, 80);
hPen = CreatePen(PS_SOLID, 5, RGB(0, 0, 0));
SelectObject(hdc, hPen);
Ellipse(hdc, 70, 40, 110, 80);
hPen = CreatePen(PS_SOLID, 5, RGB(255, 0, 0));
SelectObject(hdc, hPen);
Ellipse(hdc, 120, 40, 160, 80);
// нижний ряд колец
hPen = CreatePen(PS_SOLID, 5, RGB(255, 255, 0));
SelectObject(hdc, hPen);
Ellipse(hdc, 45, 60, 85, 100);
hPen = CreatePen(PS_SOLID, 5, RGB(0, 255, 0));
SelectObject(hdc, hPen);
Ellipse(hdc, 95, 60, 135, 100);
}

Слайд 16

Задача 2

Нарисовать будильник. Отрисовку сделать в отдельной функции.

Задача 2 Нарисовать будильник. Отрисовку сделать в отдельной функции.

Слайд 17

Задача 2

Нарисовать будильник. Отрисовку сделать в отдельной функции.

Задача 2 Нарисовать будильник. Отрисовку сделать в отдельной функции.

Слайд 18

Задача 2

Нарисовать будильник. Отрисовку сделать в отдельной функции.

Задача 2 Нарисовать будильник. Отрисовку сделать в отдельной функции.

Слайд 19

Задача 2

Нарисовать будильник. Отрисовку сделать в отдельной функции.

Задача 2 Нарисовать будильник. Отрисовку сделать в отдельной функции.

Слайд 20

Задача 2

Нарисовать будильник. Отрисовку сделать в отдельной функции.

Задача 2 Нарисовать будильник. Отрисовку сделать в отдельной функции.

Слайд 21

Задача 3

Нарисовать облако. Отрисовку сделать в отдельной функции.

Задача 3 Нарисовать облако. Отрисовку сделать в отдельной функции.

Слайд 22

Задача 3

Нарисовать облако. Отрисовку сделать в отдельной функции.

Задача 3 Нарисовать облако. Отрисовку сделать в отдельной функции.

Слайд 23

Задача 3

Нарисовать облако. Отрисовку сделать в отдельной функции.

Задача 3 Нарисовать облако. Отрисовку сделать в отдельной функции.

Слайд 24

Задача 4*

Нарисовать ????. Отрисовку сделать в отдельной функции.

Задача 4* Нарисовать ????. Отрисовку сделать в отдельной функции.

Слайд 25

Источники информации

Графический интерфейс GDI в Microsoft Windows (Александр Фролов, Григорий Фролов Том 4,

Источники информации Графический интерфейс GDI в Microsoft Windows (Александр Фролов, Григорий Фролов
М.: Диалог-МИФИ, 1993)
https://www.frolov-lib.ru/books/bsp/v14/ch2_3.htm
Программирование WIN32 API | Функции WIN32 API https://life-prog.ru/view_komputernaya_grafika.php?id=10
КАК рисовать в Win32 API? -http://radiofront.narod.ru/htm/prog/htm/winda/api/paint.html

Слайд 26

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

Дорисовать все картинки из презентации, которые не успели нарисовать в

Домашнее задание Дорисовать все картинки из презентации, которые не успели нарисовать в
классе.
Создать свой собственный рисунок, содержащий эллипсы, сегменты и секторы эллипса. Реализовать его в виде отдельной функции.
*** Переделать все ранее сделанные рисунки в виде «Один предмет = одна отдельная функция»
Имя файла: WinAPI-Графика-–-Знакомство-с-функциями-Ellipse,-Arc,-Chord,-Pie.-Лабораторная-работа-№8.pptx
Количество просмотров: 49
Количество скачиваний: 0