Охрана труда:
нормативно-правовые основы и особенности организации
Обучение по оказанию первой помощи пострадавшим
Аккредитация Минтруда (№ 10348)
Подготовьтесь к внеочередной проверке знаний по охране труда и оказанию первой помощи.
Допуск сотрудника к работе без обучения или нарушение порядка его проведения
грозит организации штрафом до 130 000 ₽ (ч. 3 статьи 5.27.1 КоАП РФ).

Свидетельство о регистрации
СМИ: ЭЛ № ФС 77-58841
от 28.07.2014

Почему стоит размещать разработки у нас?
  • Бесплатное свидетельство – подтверждайте авторство без лишних затрат.
  • Доверие профессионалов – нас выбирают тысячи педагогов и экспертов.
  • Подходит для аттестации – дополнительные баллы и документальное подтверждение вашей работы.
Свидетельство о публикации
в СМИ
свидетельство о публикации в СМИ
Дождитесь публикации материала и скачайте свидетельство о публикации в СМИ бесплатно.
Диплом за инновационную
профессиональную
деятельность
Диплом за инновационную профессиональную деятельность
Опубликует не менее 15 материалов в методической библиотеке портала и скачайте документ бесплатно.
28.10.2014

Рисование правильных многоугольников в Lazarus

Матыцин Игорь Владимирович
учитель математики и информатики
Пошаговое руководство по рисованию правильных многоугольников в Lazarus. Узнайте, как создать проект на языке Паскаль, использовать компонент PaintBox для отрисовки геометрических фигур и реализовать точный алгоритм построения. Рассчитывайте координаты вершин с помощью тригонометрических функций, настраивайте количество сторон и радиус. Практические примеры кода помогут закрепить материал и создать визуально точные фигуры — от треугольника до круга. Идеально для начинающих изучать компьютерную графику в среде Lazarus.

Содержимое разработки

Для того чтобы построить правильный многоугольник, необходимо сначала разобраться из чего он состоит. Правильный многоугольник состоит из одинаковых отрезков и равных углов. Следовательно, необходимо знать длину стороны и угол между сторонами. Длину стороны можно задать любую, так как она будет влиять только на размер многоугольника. А вот угол будет меняться для каждого многоугольника. Чтобы вычислить угол необходимо воспользоваться формулой: (180*(n-2))/n. В этой формуле n – это количество углов. Тем самым меняя переменную n можно получить множество многоугольников.

Программирование начнем с создания интерфейса программы. Вот самый простой вариант:

На форме размещено:

Button1: TButton; \\ кнопка для рисования многоугольников

Edit1:TEdit; \\ содержит количество углов

Edit2:TEdit; \\ содержит длину стороны

Image1:TImage; \\ объект на котором будем рисовать

Label1: TLabel; \\ метка для описания интерфейса

Label2: TLabel; \\ метка для описания интерфейса

Теперь необходимо разобраться, как же рисовать сами многоугольники.

Вначале необходимо нарисовать прямую линию нужного размера, это будет основа многоугольника. Затем нужно нарисовать линию того же размера но повернутую на угол вычисленный по формуле (180*(n-2))/n.

Для того чтобы повернуть линию будем использовать формулу:

x := Round(x + dim* cos(u));

y := Round(y - dim* sin(u));

Тут главная переменнаяu, которая содержит угол поворота линии.

Вот код который строит линию, повернутую на угол u:

form1.Image1.Canvas.Line(x, y, Round(x + dim * cos(u)), Round(y - dim * sin(u)));

x,y – начало линии.

Dim – длинна линии.

Если взять u=(108*(n-2))/n то при программировании не чего не получиться, так как в Lazarus углы откладываются от одной и той же линии, которая является нулем.

Если построить две линии для u=0 и дляu=(108*(n-2))/n, то получим:

Горизонтальная линия построенна при угле в нуль градусов. И вторая построенна при угле 0+(108*(n-2))/n

А нам необходим вот этот угол:

Этот угол найти нетрудно он равен 180-(108*(n-2))/n.

Теперь можно переходить к программированию. Вначале необходимо задать начальные значения переменных:

x:=300; \\ координата x начала многоугольника

y:=600; \\ координата y начала многоугольника

count:=strtoint(edit1.Text); \\ количество углов многоугольника

dim:=strtoint(edit2.Text); \\ длинна стороны многоугольника

p:=pi-((pi*(count-2))/count); \\ вычисление угла в многоугольнике

u:=0; \\ значение угла для первой линии многоугольника

Далее необходимо задать цикл который будет строить линии постоянно поворачивая их на угол 180-(108*(n-2))/n, но так как нужно строить не от нуля мы будем прибавлять к старому углу новое значение.

Получим выражение

U:=u+p;

Так как p:= 180-(108*(n-2))/n,

Остается лишь построить линию с такими координатами. Вот весь код обработчика событий для кнопки:

procedure TForm1.Button1Click(Sender: TObject);

var

i,dim,count,x,y:integer;

u,p:real;

begin

Image1.Canvas.Brush.Color:=clwhite;

Image1.Canvas.Pen.Color:=clblue;

Image1.Canvas.Pen.Width:=5;

Image1.Canvas.FillRect(0,0,form1.Width,form1.Height);

x:=300;

y:=600;

count:=strtoint(edit1.Text);

dim:=strtoint(edit2.Text);

p:=pi-((pi*(count-2))/count);

u:=0;

for i:=1 to count do

begin

form1.Image1.Canvas.Line(x, y, Round(x + dim * cos(u)), Round(y - dim * sin(u)));\\ строимлинию

x := Round(x + dim* cos(u));\\вычисляемновыекоординаты

y := Round(y - dim* sin(u)); \\вычисляемновыекоординаты

u:=u+p; \\ получаем новый угол

end;

end;

Окно рабочей программы:

Адрес публикации: https://www.prodlenka.org/metodicheskie-razrabotki/70088-risovanie-pravilnyh-mnogougolnikov-v-lazarus

Свидетельство участника экспертной комиссии
Рецензия на методическую разработку
Опубликуйте материал и закажите рецензию на методическую разработку.
Также вас может заинтересовать
Свидетельство участника экспертной комиссии
Свидетельство участника экспертной комиссии
Оставляйте комментарии к работам коллег и получите документ
БЕСПЛАТНО!
У вас недостаточно прав для добавления комментариев.

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

 

Для скачивания материалов с сайта необходимо авторизоваться на сайте (войти под своим логином и паролем)

Если Вы не регистрировались ранее, Вы можете зарегистрироваться.
После авторизации/регистрации на сайте Вы сможете скачивать необходимый в работе материал.

Рекомендуем Вам курсы повышения квалификации и переподготовки