Thema: Array Zugriff

Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Array Zugriff

  Alt 27. Nov 2011, 22:07
Mein Vorschlag wäre, nur die ganzzahligen Winkel zu vertafeln und Zwischenwerte geradlinig zu interpolieren.

Delphi-Quellcode:
var
  CosTable: array [0..90] of double;

function CosFromCosTable(Alpha: integer): double;
var
  I: integer;
begin
  while Alpha < 0 do Inc(Alpha, 360);
  while Alpha > 360 do Dec(Alpha, 360);
  I:= 1;
  if Alpha > 180 then
  begin
    Dec(Alpha, 180);
    I:= -1;
  end;
  if Alpha <= 90 then
    Result:= I * CosTable[Alpha]
  else
    Result:= - I * CosTable[180 - Alpha];
end;

function SinFromCosTable(Alpha: integer): double;
begin
  Result:= CosFromCosTable(90 - Alpha);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Alpha: integer;
begin
  for Alpha:= 0 to 90 do
    CosTable[Alpha]:= Cos(Alpha * 0.0174532925199433);
end;
  Mit Zitat antworten Zitat