The picture is I think clearer now.
You are looking for the volume of the solid of rotation generated by sweeping a quarter circle around the center of the beaker.
Part of the problem is easy and part of it is subtler. If we take the distance (outer radius - inner radius) to be unit, the area of the quarter circle is just $\pi/4$.
The volume is simply that area multiplied by the distance it travels, which is $2 \pi R$, and the only question is, what to use for R? Pappus' Theorem says that we calculate that distance using the geometric centroid, whose coordinates are found as in the edit below (the value is the same in both dimensions, by symmetry).
So the coordinates of the centroid of the quarter circle are $\{ \frac{4}{3\pi}, \frac{4}{3\pi} \}$.
The radius of revolution should be: R = r_inner + $4/3\pi$ (r_outer - r_inner).
So finally the formula is, using R' as r_inner and r = r_outer - r_inner:
$V = A*2 \pi R = r^2 \frac{\pi} {4}2\pi (r \frac{4}{3 \pi}+ R') $
Edit: some detail about the centroid.
We have the area A from above. For $M_x,M_y$ we have
$M_y = \int_{0}^{1} \int_{0}^{\sqrt{1-x^2}} x dydx$ = 1/3.
$M_x = \int_{0}^{1} \int_{0}^{\sqrt{1-x^2}} y dydx$ = 1/3.
$x_{centroid} = M_y/A = (1/3) /( Pi/4) = 4/3\pi$
$y_{centroid} = M_x/A = (1/3) /( Pi/4) = 4/3\pi$
Let's analyze a single case:
If we want to cover a $6x5$ rectangle with $7$ squares, we first note that each square at most has an area of $30/7$. We also know that for our filling to be optimal, we need to fill at least an axis.
So now we know that we will fill either the $6$ or the $5$ completely. We will first try with the 5. Since the maximal side of our squares is $\sqrt{30/7}$, we now need the smallest integer more than $5/\sqrt{30/7}$, that is equal to $\lceil5/\sqrt{30/7}\rceil=3$
So we would divide the $5$ in $3$ parts $p_x$, so each side will have $5/3$ . If so, I would cover $(5/3)^2*7=19\frac49$ of the thirty squares. If they don't fit vertically, we try with more parts $p_x$, until the squares fit in the other axis. $$\lfloor6/(5/p_x)\rfloor*\lfloor5/(5/p_x)\rfloor=\lfloor6/(5/p_x)\rfloor*p_x\ge7 \,\,\,\,\,\,\,\,\,\, (5/p_x=\text{the actual size of our squares)}$$
Also, since $p_x$ is integer $\lfloor p_x \rfloor =p_x$
If we do the same with the $6$, we get $\lceil6/\sqrt{30/7}\rceil$ again covering $19\frac49$ of the surface. We then do the same as with the $5$ and save it as $p_y$
Let's now recall the formulas we had.
We had an $x∗y$ rectangle and filled it with $N$ squares. We started with $p_x=⌈x/\sqrt{xy/N}⌉$=$⌈\sqrt{Nx/y}⌉$ or $p_y=⌈y/\sqrt{xy/N}⌉=⌈\sqrt{Ny/x}⌉$ and then we made them fit by shrinking them until they fit in the other axis. But we know we want the area maximised, so $Side=max(x/p_x,y/p_y)$.
A better method:
Once we have the start value $p_x=⌈x/\sqrt{xy/N}⌉=⌈\sqrt{Nx/y}⌉$,if it does not fit in the $y$ axis, we need to make it fit in the $y$ axis. For that, we use that
$$a=x/p_x$$
where $a$ is the value of the actual side of our squares.
Then we know that for our side to fit we need to reduce it:
$$S_x=y/(\lceil y/a \rceil)$$
We do the same with $S_y$ and calculate $max(S_x,S_y)$
The advantage of this is that it needs a constant number of operations, the most expensive one being the square root.
Plain, unoptimized C Code
Some multiplications may be reused but for code readability and practical uses this is enough.
Input: values of $x$,$y$, and $n$. Handcoded.
Output: The optimal side of our squares
#include <math.h>
#include <stdio.h>
#define MAX(x,y) (x)>(y)?(x):(y)
int main(){
double x=5, y=6, n=7;//values here
double px=ceil(sqrt(n*x/y));
double sx,sy;
if(floor(px*y/x)*px<n) //does not fit, y/(x/px)=px*y/x
sx=y/ceil(px*y/x);
else
sx= x/px;
double py=ceil(sqrt(n*y/x));
if(floor(py*x/y)*py<n) //does not fit
sy=x/ceil(x*py/y);
else
sy=y/py;
printf("%f",MAX(sx,sy));
return 0;
}
Best Answer
In each dimension, the walls will subtract 1 from each side (top-bottom, left-right, etc) so the inner volume of $A\times B\times C$ is $(A-2) \times (B-2) \times (C-2)$