Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Приклад. Побудувати правильний N - кутник



Центр многоугольника сполучаємо з центром екрана. Центральний кут сторони Angle=2*Pi/N. Початкову вершину багатокутника помістимо на горизонтальній осі (праворуч від центра). Кут нахилу i -ої сторони до осі Х складає Angle * i, а її центральні координати – X = round(R*cos(Angle*i)); Y = round (R*sin(Angle*i)); де R – радіус описаного кола.

Проводимо i -ю сторону, з'єднуючи лінією знайдену i -ю і попередню вершини. Виконавши цю побудову для всіх і від 1 до N, одержимо наш багатокутник. (Відзначимо, що N -я вершина збігається з початковою).

program example12;

uses graph, crt;

Const

Pr:real=80; { Довжина діаметра описаного кола в % від висоти екрана}

PATH=''; { файли *.BGI знаходяться в робочому каталозі}

Var W,H,gd,gm,i,N,X,Y.R:integer; Angle:real;

{ перехід від центральних координат до екранних}

procedure WH (var W,H:integer); { ширина і висота екрана}

begin

W:=(GetMax+1); { ширина} H:=(GetMax+1); { висота}

end;

Function Xscr (X:integer):integer;

Begin Xscr:=X + W div 2 end;

Function Yscr (Y:integer):integer;

Begin Yscr:=H div 2 – Y end;

BEGIN

repeat

write (' Укажіть число сторін правильного багатокутника, не менш 3');

readln(N);

until N>2;

gd:=DETECT;

initgraph (gd,gm,path);

WH(W,H); { визначаємо ширину і висоту екрана}

R:=round(Pr*0.01/*H/2); { радіус описаної окружності}

Angle:=2*pi/N; { центральний кут сторони в радіусах}

MoveTo (Xscr(R), Yscr(0)); { перша вершина в екранних координатах}

SetColor (Yellow); { колір багатокутника - жовтий}

For і:=1 to N do begin {цикл сторін}

{X і Y – центральні координати чергової вершини}

X:=round (R*cos(Angle*і));

Y:= round (R*sin(Angle*і));

{проводимо чергову сторону}

LineTo (Xscr(X), Yscr(Y));

End; {цикл сторін}

Repeat until keypressed; { вихід – натисканням будь-якої клавіші}

CloseGraph; { перехід у текстовий режим}

End.






Дата публикования: 2015-04-09; Прочитано: 422 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...