Рисование пятиконечной звезды - 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 и математических функций. Вот список действий, которые выполняются в коде:

  1. Получение дескриптора контекста устройства (hDC) для рисования на экране.
  2. Создание объекта пера (hPen) с выбранным цветом и толщиной.
  3. Создание объекта кисти (hBrush) с выбранным цветом.
  4. Выбор объекта пера (hPen) для рисования.
  5. Выбор объекта кисти (hBrush) для заливки.
  6. Установка значений переменных: радиуса первой и второй ветвей звезды (R1 и R2), количества вершин звезды (10), координат центра звезды (XC и YC).
  7. Установка шага и угла для цикла, который будет генерировать координаты вершин звезды.
  8. Создание массива из 10 структур POINT для хранения координат вершин звезды.
  9. Использование цикла для генерации и сохранения координат вершин звезды в массиве P.
  10. Рисование многоугольника с использованием сохраненных координат вершин звезды.
  11. Удаление объекта пера (hPen).
  12. Удаление объекта кисти (hBrush).
  13. Ожидание нажатия клавиши для завершения программы.
  14. Возврат 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы