Кривые по уравнению

В качестве примера будет рассмотрена Окружность.
Уравнение множества точек лежащих на окружности вычисляется формулой X²+Y²=R²

 Для рисования кривой, представляющей из себя обычную окружность нужно разделить это уравнение на 2 части. Одна часть будет рисоваться сверху, другая снизу. Переменная X пробегает через последовательные значения от -R до R. Переменная Y вычисляется для каждой ветви кривой (верхней и нижней):


Turbo Pascal 
 Program Test_1;
Uses CRT, Graph;
   Var d,m,r,y:integer;
          x:real;
Begin
{установка графического режима}
d:=detect; m:=detect;
InitGraph(d,m,'');
{----------------------------}
r:=100; {радиус окружности}
x:=-r;
while x<=r do begin
         y:=round(sqrt(r*r-x*x));
        {окружность с центром в точке 320, 240} 
        PutPixel(320+round(x),240+y,white);
        PutPixel(320+round(x),240-y,white);
        x:=x+0.01;
end;
{ждать нажатия клавиши}
repeat until KeyPressed;
CloseGraph {закрыть графический режим}
End.

==========================================
Другой пример Кривая Безумие (madness)
 x = Sin(0.0099t)-0.7Cos(0.0301t)
 y = 0.1Sin(0.1503t)+Cos(0.0101t)

Turbo Pascal 
Program Madness;
Uses CRT, Graph;
   Var d,m,x,y :integer;
          t:real;
Begin
d:=detect;
m:=detect;
InitGraph(d,m,'');
t:=0;
   repeat
      x:=320+round(180*(sin(0.0099*t)-0.7*cos(0.0301*t)));
      y:=240-round(200*(0.1*sin(0.1503*t)+cos(0.0101*t)));
         PutPixel(x,y,white);
         t:=t+0.01;
   until KeyPressed;
CloseGraph;
End.

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

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

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


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

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