Area Calculations Library/de

From Free Pascal wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en)

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 funFlaecheRechteck(dblL, dblB: 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 funBogenlaengeKreisabschnitt(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
  // dblL ist die Sehnenlänge
  Result := dblR - (sqrt((dblR * dblR) - ((dblL * dblL) / 4)));
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.