Нарисовать логарифмическую спираль — Pascal(Паскаль)

Логарифмическая спираль r = a*exp(kφ), a = 2, k = 0,2.

Расчитываем радиус, увеличивая угол от 0° до (360 * n)°:
r = 2 * exp(0.2 * φ)

n — количество оборотов.

Получаем координаты точки через Cos и Sin от угла и радиуса и рисуем.

program LOGSPIR;

uses
  Graph, Crt;

var
  gDriver, gMode: Integer;
  r, a, arad: Real;

begin
  gDriver := Detect;
  gMode := 0;
  InitGraph(gDriver, gMode, '..\bgi');
  ClearDevice;
  SetColor(White);
  Line(0, GetMaxY div 2, GetMaxX, GetMaxY div 2);
  Line(GetMaxX div 2, 0, GetMaxX div 2, GetMaxY);
  while a < 360 * 4 do
  begin
    arad := a * pi / 180;
    r := 2 * exp(0.2 * arad);
    PutPixel(Round(r * Sin(arad) + GetMaxX / 2),
      Round(r * Cos(arad) + GetMaxY / 2), Green);
    a := a + 0.1;
  end;
  while not KeyPressed do
    Delay(1);
  CloseGraph;

end.

Leave a Comment

− 1 = 3