![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Регистрация: 08.05.2010
Сообщений: 9
|
![]() Код:
![]() Попробуй должно заработать ![]()
Каждый из нас звезданутый по-своему - это и делает нас личностями
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 04.05.2010
Сообщений: 495
|
![]()
Взял вот отсюда: http://festival.1september.ru/articles/211902/
Есстественно, что по заданному числу сторон можно построить бесконечное множество правильных многоугольников. Для однозначного определения необходим еще и Радиус описанной вокруг ( или вписанной в) многоугольника окружности. Построить правильный многоугольник с заданным числом сторон. Решение. Центр многоульника совмещаем с центром экрана. Пусть N – число его сторон. Центральный угол стороны Angle=2 * Pi / N. Начальную вершину многоугольника поместим на горизонтальной оси (правее центра). Угол наклона i-й вершины к оси Х составляет Angle * i, а ее центральные координаты X, Y – X = round (R*cos(Angle*i)); Y = round (R*sin(Angle*i)); Где R – радиус описанной окружности. Проводим i-ю сторону, соединяя линией найденную i-ю и предыдущую вершины. Выполнив это построение для всех i от 1 до N, получим наш многоугольник. (Отметим, что N-я вершина совпадает с начальной .) { Построение правильного многоугольника с N сторонами} uses graph, crt; Const PrD:real=80; { Длина диаметра описанной окружности в % от высоты экрана} PATH=’’; { файлы *.BGI находятся в рабочем каталоге} Var W,H,gd,gm,i,N,X,Y.R:integer; Angle:real; { переход от центральных координат к экранным} procedure WH (var W,H:integer); { ширина и высота экрана} begin { функция GetMaxX и GetMaxY возвращают максимальные значения соответствующих экранных координат} W:=( GetMaxX+1); { ширина} H:=( GetMaxY+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(PrD*0.01/*H/2); { радиус описанной окружности} Angle :=2*pi/N; { центральный угол стороны в радиусах} MoveTo (Xscr(R), Yscr(0)); { первая вершина в экранных координатах} SetColor (Yellow); { цвет многоугольника - желтый} For i:=1 to N do begin {цикл сторон} {X и Y – центральные координаты очередной вершины} X:=round (R*cos(Angle*i)); Y:= round (R*sin(Angle*i)); {проводим очередную сторону} LineTo (Xscr(X), Yscr(Y)); End; {цикл сторон} Repeat until keypressed; { выход – нажатием любой клавиши} CloseGraph; { переход в текстовый режим} End.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948 |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ЕГЭ (Логика) | Xcopy | Помощь студентам | 6 | 07.02.2010 18:59 |
Математическая логика | newum44 | Помощь студентам | 0 | 24.01.2010 10:08 |
Женская логика... | Mr.Qwerty | Свободное общение | 23 | 28.07.2009 11:30 |
Бизнес - логика | Lyubov1990 | Microsoft Office Excel | 3 | 09.06.2009 19:27 |
Логика монстра(ов) | ChukCha | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 15 | 19.08.2008 15:31 |