- Курс-практикум «Педагогический драйв: от выгорания к горению»
- «Оказание первой помощи в образовательных учреждениях»
- «Труд (технология): специфика предмета в условиях реализации ФГОС НОО»
- «ФАООП УО, ФАОП НОО и ФАОП ООО для обучающихся с ОВЗ: специфика организации образовательного процесса по ФГОС»
- «Специфика работы с детьми-мигрантами дошкольного возраста»
- «Учебный курс «Вероятность и статистика»: содержание и специфика преподавания в условиях реализации ФГОС ООО и ФГОС СОО»
Свидетельство о регистрации
СМИ: ЭЛ № ФС 77-58841
от 28.07.2014
- Бесплатное свидетельство – подтверждайте авторство без лишних затрат.
- Доверие профессионалов – нас выбирают тысячи педагогов и экспертов.
- Подходит для аттестации – дополнительные баллы и документальное подтверждение вашей работы.
в СМИ
профессиональную
деятельность
Рисование правильных многоугольников в 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 минут.