Путь разработчика    

Нарисуйте звезды внутри полигонов в C#

В этом примере показано, как рисовать звезды внутри многоугольника, подключая каждую M-ю вершину по мере ее рисования. Если многоугольник имеет N сторон, а N и M взаимно просты (не имеют общих факторов, кроме 1), то линии посещают каждую вершину, а результат - звезду. Обратите внимание, если M равно 1, то линии рисуют многоугольник.

PictureBox Paint цикл обработчика событий для i = 1 до N - 1, звезда в центре PictureBox. Он также рисует каждую звезду возле i-й вершины.

Python

Обработчик событий Paint начинается с создания массивов, удерживающих точки, для рисования центральных и внешних звезд. Эти точки будут рисовать многоугольник, центрированный в начале координат, если они были нарисованы так, как они находятся в массивах.

Далее код запускает цикл for для рисования меньших полигонов. Если вы проверите CheckBox «Только половина», программа будет проходить от 1 до N / 2. Если вы не установите этот флажок, программа пропустит все значения между 1 и N - 1. (Вам нужно всего лишь нарисовать половину из них, чтобы сделать все возможные шаблоны, но их рисование создает хороший симметричный результат .)

Если вы проверите флажок «Относительно простой только» CheckBox, программа вызывает функцию GCD, чтобы решить, является ли значение пропуска и число сторон относительно простым, и оно только рисует линию, если они есть.

Наконец, после всей этой работы, чтобы решить, следует ли рисовать линии, программа вызывает метод DrawStar. Затем он вычисляет, где должен быть нарисован меньший многоугольник, и снова вызывает DrawStar, чтобы нарисовать его там.

См. пример Вычислите наибольший общий делитель (GCD) и наименьшее общее число (LCM) двух целых чисел в C# для получения дополнительной информации о функции GCD.

Метод DrawStar, показанный в следующем коде показывает, рисует многоугольник и линии, соединяющие вершины.

Python

Источник: http://csharphelper.com/blog/2015/05/draw-stars-inside-polygons-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

NumericUpDown и использование десятичных значений в C#

Большинство разработчиков знают, что элемент NumericUpDown позволяет пользователю выбирать число, но мало кто знает, что он может обрабатывать десятичные з...

20 01 2020 2:19:55

Сравнение производительности типов float, double и decimal в C#

Математический сопроцессор компьютера обычно дает лучшую производительность с определенным типом данных. Чтобы узнать, какая из них лучше всего работает в...

19 01 2020 14:45:34

Перемещение формы без заголовка в C#

Когда пользователь нажимает мышь на зеленую метку lblMoveForm Label в верхнем правом углу формы, выполняется следующий обработчик событий. Код устанавливае...

18 01 2020 22:20:16

Как инициализировать списки из баз данных без привязки к C#

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

17 01 2020 0:42:31


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69