Рисование пятиконечной звезды - C (СИ)
Формулировка задачи:
как правильно нарисовать пятиконечную звезду средствами winapi? нашел вот такой хороший урок только вопрос в том как нарисовать одну линию под углом к другой линии? или вернее даже не линию, а просто задать массив точек, а потом уже полигоном соединить...
Решение задачи: «Рисование пятиконечной звезды»
textual
Листинг программы
#include <stdio.h> #include <Windows.h> #include <math.h> #define PI 3.14159265359 int main() { HDC hDC = GetDC(GetConsoleWindow()); HPEN hPen = CreatePen(PS_SOLID, 3, RGB(255,0,0)); HBRUSH hBrush = CreateSolidBrush(RGB(255,255,0)); SelectObject(hDC, hPen); SelectObject(hDC, hBrush); int R1 = 100, R2 = 50, count = -1, XC = 150, YC = 150; double step = 0.2 * PI, angle = 1.6 * PI; POINT P[10]; while (++count < 10) { P[count].x = XC + R1 * sin(angle); P[count].y = YC - R1 * cos(angle); angle += step; P[++count].x = XC + R2 * sin(angle); P[count].y = YC - R2 * cos(angle); angle += step; } Polygon(hDC, P, 10); DeleteObject (hPen); DeleteObject (hBrush); getchar(); return 0; }
Объяснение кода листинга программы
В этом коде происходит рисование пятиконечной звезды с использованием функций Windows API и математических функций. Вот список действий, которые выполняются в коде:
- Получение дескриптора контекста устройства (hDC) для рисования на экране.
- Создание объекта пера (hPen) с выбранным цветом и толщиной.
- Создание объекта кисти (hBrush) с выбранным цветом.
- Выбор объекта пера (hPen) для рисования.
- Выбор объекта кисти (hBrush) для заливки.
- Установка значений переменных: радиуса первой и второй ветвей звезды (R1 и R2), количества вершин звезды (10), координат центра звезды (XC и YC).
- Установка шага и угла для цикла, который будет генерировать координаты вершин звезды.
- Создание массива из 10 структур POINT для хранения координат вершин звезды.
- Использование цикла для генерации и сохранения координат вершин звезды в массиве P.
- Рисование многоугольника с использованием сохраненных координат вершин звезды.
- Удаление объекта пера (hPen).
- Удаление объекта кисти (hBrush).
- Ожидание нажатия клавиши для завершения программы.
- Возврат 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д