Area Calculations Library
From Lazarus wiki
Jump to navigationJump to searchThe 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) │
A library for area calculation.
unit uArea ;
{$mode objfpc} {$H +}
{$IMPLICITEXCEPTIONS OFF}
interface
uses
SysUtils ;
function funSquareArea (dblL : double) : double;
function funSquareDiagonalLength (dblL : double) : double;
function funSquareLength (dblA : double) : double;
function funSquarePerimeter (dblL : double) : double;
function funRectangleArea (dblL, dblB : double) : double;
function funRectangleDiagonalLength (dblL, dblB : double) : double;
function funRectanglePerimeter (dblL, dblB : double) : double;
function funRhombusArea (dblL, dblB : double) : double;
function funRhombusPerimeter (dblL, dblB : double) : double;
function funeTrapezoidArea (dblL1, dblL2, dblB : double) : double;
function funTrapezMedian (dblL1, dblL2 : double) : double;
function funTrapezoidPerimeter (dblL1, dblL2, dblL3, dblL4 : double) : double;
function funTriangleArea (dblL, dblB : double) : double;
function funTrianglePerimeter (dblL1, dblL2, dblL3 : double) : double;
function funEquilateralTriangleHeight (dblL : double) : double;
function funCircleArea (dblD : double) : double;
function funCircleCircumference (dblD : double) : double;
function funCircleRadius (dblA : double) : double;
function funCircleSegmentArea (dblA, dblD : double) : double;
function funCircleSegmentChordLength (dblR, dblA : double) : double;
function funCircleSegmentArcLength (dblR, dblA : double) : double;
function funCircleSegmentChordLength (dblR, dblB : double) : double;
function funCircleSegmentSagitta (dblR, dblL : double) : double;
function funEllipseArea (dblD1, dblD2 : double) : double;
function funEllipseCircumference (dblD1, dblD2 : double) : double;
implementation
function funSquareArea (dblL : double) : double;
begin
// dblL is the length
Result := dblL * dblL;
end;
function funSquareDiagonalLength (dblL : double) : double;
begin
// dblL is the length
Result := (sqrt (2)) * dblL;
end;
function funSquareLength (dblA : double) : double;
begin
// dblA is the area
Result := sqrt (dblA);
end;
function SquarePerimeter (dblL : double) : double;
begin
// dblL is the length
Result := 4 * dblL;
end;
function funRectangleArea (dblL, dblB : double) : double;
begin
// dblL is the length
// dblB is the width
Result := dblL * dblB;
end;
function funRectangleDiagonalLength (dblL, dblB : double) : double;
begin
// dblL is the length
// dblB is the width
Result := sqrt (dblL + dblB);
end;
function funRectanglePerimeter (dblL, dblB : double) : double;
begin
// dblL is the length
// dblB is the width
Result := 2 * (dblL + dblB);
end;
function funRhombusArea (dblL, dblB : double) : double;
begin
// rhombus = parallelogram
// dblL is the length
// dblB is the width
Result := dblL * dblB;
end;
function funRhombusPerimeter (dblL, dblB : double) : double;
begin
// rhombus = parallelogram
// dblL is the length
// dblB is the width
Result := 2 * (dblL + dblB);
end;
function funTrapezoidArea (dblL1, dblL2, dblB : double) : double;
begin
// dblL1 is the great length
// dblL2 is the short length
// dblB is the width
Result := ((dblL1 * dblL2) / 2) * dblB;
end;
function funTrapezoidMedian (dblL1, dblL2 : double) : double;
begin
// dblL1 is the large length
// dblL2 is the small length
Result := (dblL1 * dblL2) / 2;
end;
function funTrapezoidPerimeter (dblL1, dblL2, dblL3, dblL4 : double) : double;
begin
// dblL1 to dblL4 are the lengths of the trapezoid
Result := dblL1 + dblL2 + dblL3 + dblL4;
end;
function funTriangleArea (dblL, dblB : double) : double;
begin
// dblL is the length
// dblB is the width
Result := (dblL * dblB) / 2;
end;
function funTrianglePerimeter (dblL1, dblL2, dblL3 : double) : double;
begin
// dblL1 to dblL3 are the lengths of the triangle
Result := dblL1 + dblL2 + dblL3;
end;
function funEquilateralTriangleHeight (dblL : double) : double;
begin
// dblL is the length
Result := 0.5 * sqrt(3) * dblL;
end;
function funCircleArea (dblD : double) : double;
begin
// dblD is the diameter
Result := (PI * (dblD * dblD)) / 4;
end;
function funCircleCircumference (dblD : double) : double;
begin
// dblD is the diameter
Result := PI * dblD;
end;
function funCircleRadius (dblA : double) : double;
begin
// dblA is the area
Result := sqrt (dblA / PI);
end;
function funCircleSegmentArea (dblA, dblD : double) : double;
begin
// dblD is the circle diameter
// dblA is the central angle
Result := (PI * (dblD * dblD) / 4) * (dblA / 360);
end;
function funCircleSegmentChordLength (dblR, dblA : double) : double;
begin
// dblR is the radius
// dblA is the central angle
Result := 2 * (dblR * (sin (dblA / 2)));
end;
function funCircleSegmentArcLength (dblR, dblA : double) : double;
begin
// dblR is the radius
// dblA is the central angle
Result := (PI * dblR * dblA) / 180;
end;
function funCircleSegmentChordLength (dblR, dblB : double) : double;
begin
// dblR is the radius
// dblB is the width
Result := 2 * sqrt (dblB * ((2 * dblR) - dblB));
end;
function funCircleSegmentSagitta (dblR, dblL : double) : double;
begin
// dblR is the radius
// dblL is the chord length
Result := dblR - (sqrt ((dblR * dblR) - ((dblL * dblL) / 4)));
end;
function funEllipseArea (dblD1, dblD2 : double) : double;
begin
// dblD1 is the large diameter of the ellipse
// dblD2 is the small diameter of the ellipse
Result := (Pi * dblD1 * dblD2) / 4;
end;
function funEllipseCircumference (dblD1, dblD2 : double) : double;
begin
// dblD1 is the large diameter of the ellipse
// dblD2 is the small diameter of the ellipse
Result := (Pi / 2) * (dblD1 + dblD2);
end;
end.