Intersection of two solid cylinders

122 Views Asked by At

We define a solid cylinder as a 3 dimensional shape with the following properties:

$$E : \text {unit vector for axis.}$$

$$O :\text{Point on axis, middle.}$$ $$R :\text{outer radius}$$ $$r :\text{inner radius}$$ $$H :\text{half height}$$

Given two solid cylinders, what are (if exist) some necessary and sufficient conditions to determine if they intersect?

I've found these paper but they only cover cylinders, which are a special case of a solid cylinder with $r=0$ :

https://www.geometrictools.com/Documentation/IntersectionOfCylinders.pdf https://scicomp.stackexchange.com/questions/20610/how-to-determine-whether-two-cylinders-intersect-or-not http://www.sksaha.com/sites/default/files/upload_data/documents/IROS_2013.pdf

1

There are 1 best solutions below

2
On

If I understood correctly, your definition of a "solid cylinder", which I'll denote $S$, could be done in terms of the set subtraction between two cylinders denoted $C$: $$ S(E,O,H,R,r) = C(E,O,H,R) \setminus C(E,O,H,r) $$ Let $S^i = C^i_R \setminus C^i_r$ be two solid cylinders ($i\in\{0,1\})$. Then your question is whether $S^0 \cap S^1 = \emptyset$, which you can resolve with $C$ and the results from the papers you cite.

For this, you can use the results listed in Wikipedia on the complement of sets: $$ {\displaystyle (B\setminus A)\cap C=(B\cap C)\setminus A=B\cap (C\setminus A)}. $$