Calcul geometrique

s’il vous plait je veux traduire cette fonction sur arduino

var l = 26;
var r = 6;
var h = sa change selon la distance calculer par un senseur ultrason

var s = 0;
if ((0 <= h) && (h < r))
s = rrMath.atan(Math.sqrt(2rh-hh)/(r-h)) - (r-h)Math.sqrt(2rh-hh);
if ((0 <= h) && (h == r))
s = Math.PI
rr/2;
if ((0 <= r) && (r < h) && (h <= 2
r))
s = Math.PIrr + (h-r)Math.sqrt(2rh-hh) - rrMath.atan(Math.sqrt(2rh-hh)/(h-r));
return (s
l)/1000;

un truc du genre - affinez les maths, j’ai juste recopié

double faireLeCalcul(double h)
{
  const double l = 26.0;
  const double r = 6.0;
  double s = 0;

  if ((h >= 0) && (h < r))
    s = r * r * atan(sqrt(2 * r * h - h * h) / (r - h)) - (r - h) * sqrt(2 * r * h - h * h);
  else if ((h >= 0) && (h == r))  s = M_PI * r * r / 2;
  else if ((r >= 0) && (r < h) && (h <= 2 * r))
    s = M_PI * r * r + (h - r) * sqrt(2 * r * h - h * h) - r * r * atan(sqrt(2 * r * h - h * h) / (h - r));
  return (s * l) / 1000.0;
}