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