C++ для начинающих Рисование правильной звезды

  Рисование звезды представляет из себя довольно интересную задачу. Но для многих таких людей как я, эта задача сама по себе нерешаема. Я знаю, что ни в жизнь бы не смог придумать сам как строить правильную звезду с помощью языков программирования. Построение звезды — неотъемлемая часть компьютерной графики и, однозначно, получение навыков такого рода содержит в себе практическую пользу.

  Я не буду описывать сам алгоритм, потому что придумал его не я. Спасибо товарищу Puporev, который выложил код построения Звезды в Паскале. Вряд ли он увидит мою благодарность, но мне это неважно. Благодаря ему, я смогу помочь многим людям в этом вопросе. Да и сам по себе тот код подвергся небольшим моим изменениям.

  Сама по себе звезда в привычном понимании имеет 5 концов, хотя звезды могут иметь разное их количество. Я в самых первых статьях по графике упоминал, что работа с графикой требует некоторых тригонометрических знаний. Вот в построение звезды такие знания как раз будут использованы.

Код С++ Построение правильной звезды

  Что можно сказать по коду. Сам по себе он не совсем маленький, поэтому я как обычно пропустил проверку на ошибки при подготовке работы с графикой. Кроме того я решил, что наиболее удобочитаемо будет как раз если сделать так, чтоб ввод данных был вынесен в отдельную функцию, а из нее уже вызывать функцию построения Звезды. Во всем этом коде можно заметить буковку а. Сама по себе эта буква большого значения не имеет и обозначает угол наклона звезды. В принципе эту букву можно вынести в ввод данных и оттуда требовать ввести угол наклона аналогично радиусам

  Принцип построения звезды этого алгоритма в том, что сначала выполняется расчет координат концов звезды, все эти координаты запоминаются в массив. После выполнения расчетов выполняется цикл, с помощью которого выполняется последовательное и поочередное соединение всех точек, записанных в массив.
Я поместил центр звезды в центре экрана, но эти координаты можно легко переделать и строить в других местах
В этом примере можно задаться вопросом зачем использован динамический массив — ответ прост. Так как предполагается рисование звезды с неизвестным заранее числом вершин — то заранее неизвестно сколько в массиве должно быть ячеек

  Зная к чему меня приводили поиски этого материала, я уверен построение правильной звезды пригодится многим людям

a*M_PI/180 = Перевод а радианов в градусы

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     
Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор эфолюция человека

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок