Einzelnen Beitrag anzeigen

Bjoerk

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

AW: Schwerpunkt ZylinderAbschnitt

  Alt 20. Nov 2015, 13:19
Hallo Jens, schön daß du dabei bist. Hab dich letztens vermisst. Das hier brauch ich nämlich für runde Querschnitte (statt Polyeder). Hab mir mal eben das aus den Rippen geleiert. Sollte doch richtig sein?

Delphi-Quellcode:
function CylinderSectionCenterX(const D, H: double): double;
const
  N = 1000;
var
  I: integer;
  Value, Alpha, R, A, S, xS, SumM, SumA: double;
begin
  Result := 0;
  if (CompareValue(H, 0) > 0) and (CompareValue(H, D) <= 0) then
  begin
    SumM := 0;
    SumA := 0;
    R := D / 2;
    for I := 1 to N do
    begin
      Value := H / N * I;
      Alpha := 2 * ArcCos(1 - Value / R);
      S := D * Sin(Alpha / 2);
      A := R * R / 2 * (Alpha - Sin(Alpha));
      xS := R - S * S * S / 12 / A; // Von oben;
      SumA := SumA + A;
      SumM := SumM + A * xS;
    end;
    Result := SumM / SumA;
  end;
end;
https://de.m.wikipedia.org/wiki/Kreissegment

Geändert von Bjoerk (20. Nov 2015 um 13:21 Uhr) Grund: Link
  Mit Zitat antworten Zitat