Вращение равносторонних многоугольников по своей оси.

uses graph, crt;
const n=8;{изменяя "n" вы получите любой другой многоугольник}
var poly:array[1..n+1] of pointtype;
 r,x,y,i,driver,mode:integer;
 alpha:real;
 s:string;
begin
 write('radius: ');
 readln(r);
 alpha:=0;
 driver:=detect;
 InitGraph (driver,mode, 'd:\bp\bgi');
 if GraphResult<>GroK then halt(1);
 clearviewPort;
 repeat
 x:=GetMaxX shr 1;
 y:=GetMaxY shr 1;
 for i:=1 to n +1 do begin
 poly[i].X:=x+round(R*Cos(alpha+(i-1)*2*pi/n));
 poly[i].Y:=y+Round(R*sin(alpha+(i-1)*2*pi/n));
 end;
 SetColor(10);
 DrawPoly(n+1,poly);
alpha:= alpha+pi/180;
 delay(1000);
 setcolor(0);
 DrawPoly(n+1,poly);
 until KeyPressed;
 closeGraph;
 end.
 
автор sRnNikita 

Комментариев нет:

Отправить комментарий

Если у вас интересные исходники и вы не прочь поделиться, то присылайте daslex@yandex.ru с указанием Темы: Графика Паскаль
К вашей работе будет прикреплено ваше авторство и по желанию добавлена ссылка на ваш сайт.
На одну страницу - Одна работа. На одну работу - Одна ссылка + указание автора


Основное требование - это один файл .pas без сторонних модулей (только с родными. предпочтение Graph).
Можно использовать ассемблерные вставки.

Все что Запускается у меня и работает, я выкладываю. в этом блоге.
Яндекс.Метрика