I have a tent roof that is at a 45° angle.
In the tent, I have a woodstove that has a vertical stove pipe.
I want to cut a hole in the roof of the tent that will be the exact shape of the protruding pipe.
How can I determine what the exact shape of the hole will be?
$\endgroup$22 Answers
$\begingroup$As Vasya already answered correctly in a comment, the shape will be an ellipse. The minor axis has a length of $d$, the diameter of the pipe. That's horizontal on your tent, so the slope doesn't affect that direction. The major axis has a diameter of $d\sqrt2$. That's along the direction of the full $45°$ slope. It corresponds to how a square of edge length $d$ has a diagonal of length $d\sqrt2$ at a slope of $45°$. Or alternatively you can get the factor from $d\sec(45°)=d/\cos(45°)=d\sqrt2$ which can be easily adapted for other angles.
As for drawing the ellipse, I's suggest the pins and string method. You put two pins into your tent roof at a given distance, and then wrap a string around them forming a loop with a given length. Then put a pen into that string loop and move it while keeping the string tight. The string will form a triangle with the two pins and the pen as corners.
The length of the string is the major axis, $d\sqrt2$. The distance from the center to the ellipse is called the focal distance, so the distance between the pins would be twice that focal distance. Wikipedia states that $a^2=b^2+c^2$ where $a$ is the semi-major axis, i.e. half the major axis or $d/\sqrt2$ in your case. $b$ is the semi-minor axis, or $d/2$ in your case. $c$ is the focal distance. From this you get
$$2c=2\sqrt{a^2-b^2}=2d\sqrt{\frac12-\frac14}=d$$
So make the distance between the two pins equal to the diameter of the pipe, and the length of the string $\sqrt2$ that. For $d=1$ you get something like this:
$\endgroup$$\begingroup$Assume the stove pipe is a circular cylinder of radius $r$ and is exactly vertical.
You can work in a 3d coordinate system. The $x-y$ plane is the floor of the room and the $z$-axis is parallel with the stove pipe. Place the stove so that the central axis of the stove pipe is the $z$-axis.
The equation of the surface of the stove pipe is $x^2 + y^2 = r^2$, and the surface of the roof has the equation $y + z = a$ for some $a$ (specifically the vertical distance from the ceiling to the floor along the $z$-axis). The curve of intersection can be parameterized by \begin{align*} x &= r \cos t \\ y &= r \sin t \\ z &= a - r \sin t.\end{align*}
The problem is now to find the equation of the curve in the plane of the roof. To do this apply a $45^\circ$ rotation to the $y-z$ plane. The new coordinates are determined by $$ \begin{bmatrix} y' \\ z' \end{bmatrix} = \begin{bmatrix} 1/\sqrt 2 & - 1/\sqrt 2 \\ 1/\sqrt 2 & 1/\sqrt 2 \end{bmatrix} \begin{bmatrix} y \\ z \end{bmatrix}$$ so that \begin{align*} y'&= \frac{r \sin t}{\sqrt 2} - \frac{a - r \sin t}{\sqrt 2} = \sqrt 2\, r \sin t - \frac{\sqrt a}{2} \\ z' &= \frac{ r \sin t}{\sqrt 2} + \frac{a - r \sin t}{\sqrt 2} = \frac{\sqrt a}{2} \end{align*}
Here $z'$ is constant, and with $x' = x$ the ellipse is parameterized in the $x'-y'$ plane by \begin{align*} x' &= r \cos t \\ y' &= \sqrt 2 \, r \sin t - \frac{\sqrt a}{2} .\end{align*} Go back to using $x$ and $y$ for readability. The equation of the curve in the plane of the roof is $$ \frac{x^2}{r^2} + \frac{(y + \sqrt a/2)^2}{2r^2} = 1.$$
As pointed out in the comments, this is an ellipse with minor axis length $2r$ and major axis length $2 \sqrt 2 r$.
$\endgroup$

