Area Calculations Library/de

From Free Pascal wiki
Revision as of 01:17, 16 February 2020 by Trev (talk | contribs) (Fixed syntax highlighting)
Jump to navigationJump to search

Eine Bibliothek zur Flächenberechnung.

unit uFlaeche;

{$mode objfpc}{$H+}
{$IMPLICITEXCEPTIONS OFF}

interface

uses
  SysUtils;

function funFlaecheQuadrat(dblL: double): double;
function funEckmassQuadrat(dblL: double): double;
function funLaengeQuadrat(dblA: double): double;
function funUmfangQuadrat(dblL: double): double;

function funEckmassRechteck(dblL, dblB: double): double;
function funUmfangRechteck(dblL, dblB: double): double;

function funFlaecheRhomboid(dblL, dblB: double): double;
function funUmfangRhomboid(dblL, dblB: double): double;

function funFlaecheTrapez(dblL1, dblL2, dblB: double): double;
function funMittlereLaengeTrapez(dblL1, dblL2: double): double;
function funUmfangTrapez(dblL1, dblL2, dblL3, dblL4: double): double;

function funFlaecheDreieck(dblL, dblB: double): double;
function funUmfangDreieck(dblL1, dblL2, dblL3: double): double;

function funHoeheGleichseitigesDreieck(dblL: double): double;

function funFlaecheKreis(dblD: double): double;
function funUmfangKreis(dblD: double): double;
function funRadiusKreis(dblA: double): double;

function funFlaecheKreisausschnitt(dblA, dblD: double): double;
function funSehnenlaengeKreisausschnitt(dblR, dblA: double): double;

function funSehnenlaengeKreisabschnitt(dblR, dblB: double): double;
function funBreiteKreisabschnitt(dblR, dblL: double): double;

function funFlaecheElipse(dblD1, dblD2: double): double;
function funUmfangElipse(dblD1, dblD2: double): double;


implementation

function funFlaecheQuadrat(dblL: double): double;
begin
  // dblL ist die Länge
  Result := dblL * dblL;
end;

function funEckmassQuadrat(dblL: double): double;
begin
  // dblL ist die Länge
  Result := (sqrt(2)) * dblL;
end;

function funLaengeQuadrat(dblA: double): double;
begin
  // dblA ist die Fläche
  Result := sqrt(dblA);
end;

function funUmfangQuadrat(dblL: double): double;
begin
  // dblL ist die Länge
  Result := 4 * dblL;
end;

function funFlaecheRechteck(dblL, dblB: double): double;
begin
  // dblL ist die Länge
  // dblB ist die Breite
  Result := dblL * dblB;
end;

function funEckmassRechteck(dblL, dblB: double): double;
begin
  // dblL ist die Länge
  // dblB ist die Breite
  Result := sqrt(dblL + dblB);
end;

function funUmfangRechteck(dblL, dblB: double): double;
begin
  // dblL ist die Länge
  // dblB ist die Breite
  Result := 2 * (dblL + dblB);
end;

function funFlaecheRhomboid(dblL, dblB: double): double;
begin
  // Rhomboid = Parallelogramm
  // dblL ist die Länge
  // dblB ist die Breite
  Result := dblL * dblB;
end;

function funUmfangRhomboid(dblL, dblB: double): double;
begin
  // Rhomboid = Parallelogramm
  // dblL ist die Länge
  // dblB ist die Breite
  Result := 2 * (dblL * +dblB);
end;

function funFlaecheTrapez(dblL1, dblL2, dblB: double): double;
begin
  // dblL1 ist die große Länge
  // dblL2 ist die kleine Länge
  // dblB ist die Breite
  Result := ((dblL1 * dblL2) / 2) * dblB;
end;

function funMittlereLaengeTrapez(dblL1, dblL2: double): double;
begin
  // dblL1 ist die große Länge
  // dblL2 ist die kleine Länge
  Result := (dblL1 * dblL2) / 2;
end;

function funUmfangTrapez(dblL1, dblL2, dblL3, dblL4: double): double;
begin
  // dblL1 bis dblL4 sind die Längen des Trapezes
  Result := dblL1 + dblL2 + dblL3 + dblL4;
end;

function funFlaecheDreieck(dblL, dblB: double): double;
begin
  // dblL ist die Länge
  // dblB ist die Breite
  Result := (dblL * dblB) / 2;
end;

function funUmfangDreieck(dblL1, dblL2, dblL3: double): double;
begin
  // dblL1 bis dblL3 sind die Längen des Trapezes
  Result := dblL1 + dblL2 + dblL3;
end;

function funHoeheGleichseitigesDreieck(dblL: double): double;
begin
  // dblL ist die Länge
  Result := 0.5 * sqrt(3) * dblL;
end;

function funFlaecheKreis(dblD: double): double;
begin
  // dblD ist der Durchmesser
  Result := (PI * (dblD * dblD)) / 4;
end;

function funUmfangKreis(dblD: double): double;
begin
  // dblD ist der Durchmesser
  Result := PI * dblD;
end;

function funRadiusKreis(dblA: double): double;
begin
  // dblA ist die Fläche
  Result := sqrt(dblA / PI);
end;

function funFlaecheKreisausschnitt(dblA, dblD: double): double;
begin
  // dblD ist der Kreisdurchmesser
  // dblA ist der Mittelpunktswinkel
  Result := (PI * (dblD * dblD) / 4) * (dblA / 360);
end;

function funSehnenlaengeKreisausschnitt(dblR, dblA: double): double;
begin
  // dblR ist der Radius
  // dblA ist der Mittelpunktswinkel
  Result := 2 * (dblR * (sin(dblA / 2)));
end;

function funBogenlaengeKreisausschnitt(dblR, dblA: double): double;
begin
  // dblR ist der Radius
  // dblA ist der Mittelpunktswinkel
  Result := ((PI * dblR) * dblA) / 180;
end;

function funSehnenlaengeKreisabschnitt(dblR, dblB: double): double;
begin
  // dblR ist der Radius
  // dblB ist die Breite
  Result := 2 * sqrt(dblB * ((2 * dblR) - dblB));
end;

function funBreiteKreisabschnitt(dblR, dblL: double): double;
begin
  // dblR ist der Radius
  // dblB ist die Sehnenlänge
  Result := dblR - (sqrt((dblR * dblR) - ((dblL * dblL) / 4)));
end;

function funBogenlaengeKreisabschnitt(dblR, dblA: double): double;
begin
  // dblR ist der Radius
  // dblA ist der Mittelpunktswinkel
  Result := (pi * dblR * dblA) / 180;
end;

function funFlaecheElipse(dblD1, dblD2: double): double;
begin
  // dblD1 ist der Grosse Durchmesser der Elipse
  // dblD2 ist der kleine Durchmesser der Elipse
  Result := (Pi * dblD1 * dblD2) / 4;
end;

function funUmfangElipse(dblD1, dblD2: double): double;
begin
  // dblD1 ist der Grosse Durchmesser der Elipse
  // dblD2 ist der kleine Durchmesser der Elipse
  Result := (Pi / 2) * (dblD1 + dblD2);
end;

end.