Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Represent a 3D annulus with rounded edges
ResourceFunction["RoundedAnnulus3D"][{{x1,y1,z1},{x2,y2,z2}},{rinner,router}] represents a 3D annulus around the line from {x1,y1,z1} to {x2,y2,z2} with rounded edges with inner radius rinner and outer radius router. |

| RoundingRadius | {0.1,0.1} | the radii of rounded edges |
| r | use r for both the inner and the outer radius |
| {rin,rout} | separate setting for both radii |
A unit radius and two units height 3D annulus:
| In[1]:= |
| Out[1]= | ![]() |
A 3D annulus from the origin to {1,-1,1} with inner radius 1/2:
| In[2]:= |
| Out[2]= | ![]() |
Differently styled annuli:
| In[3]:= | ![]() |
| Out[3]= | ![]() |
Specify radii:
| In[4]:= | ![]() |
| Out[4]= | ![]() |
Specify centers:
| In[5]:= | ![]() |
| Out[5]= | ![]() |
Annuli with different directions:
| In[6]:= | ![]() |
| Out[6]= | ![]() |
Specify position, direction, as well as inner and outer radii:
| In[7]:= |
| Out[7]= | ![]() |
Short form for a 3D annulus centered at the origin with a radius 1:
| In[8]:= |
| Out[8]= | ![]() |
Color directives specify the face color of each annulus:
| In[9]:= |
| Out[9]= | ![]() |
FaceForm can be used to specify the styles of the interiors as well as exteriors:
| In[10]:= |
| Out[10]= | ![]() |
Different properties can be specified for the front and back faces using FaceForm:
| In[11]:= | ![]() |
| Out[11]= | ![]() |
Opacity specifies the face opacity:
| In[12]:= |
| Out[12]= | ![]() |
Decompose the annulus into its components and apply different styling to each:
| In[13]:= |
| In[14]:= |
| Out[14]= | ![]() |
Adjust how rounded the edges are:
| In[15]:= | ![]() |
| Out[15]= | ![]() |
Adjust the inner and outer edges independently:
| In[16]:= | ![]() |
| Out[16]= | ![]() |
Create a model of a wheel:
| In[17]:= | ![]() |
| Out[19]= | ![]() |
Use it to create a model of a chassis:
| In[20]:= | ![]() |
| Out[26]= | ![]() |
RoundedAnnulus3D is a 3D generalization of Annulus in 2D:
| In[27]:= |
| Out[27]= | ![]() |
The resource function RoundedCylinder effectively corresponds to RoundedAnnulus3D with zero inner radius:
| In[28]:= |
| Out[28]= | ![]() |
PieChart3D or SectorChart3D can be used to create 3D rounded annuli:
| In[29]:= | ![]() |
| Out[29]= | ![]() |
Get the graphical primitive from PieChart3D:
| In[30]:= | ![]() |
| In[31]:= |
| Out[31]= | ![]() |
Compare with RoundedAnnulus3D:
| In[32]:= | ![]() |
| Out[32]= | ![]() |
Despite being seemingly the same, the two annuli have a very different internal structure:
| In[33]:= | ![]() |
| Out[33]= | ![]() |
When the two endpoints coincide, no annulus is created:
| In[34]:= |
| Out[34]= | ![]() |
Radii are assumed to be non-negative real numbers:
| In[35]:= |
| Out[35]= | ![]() |
When the inner radius exceeds the outer one, a warning is issued and artifacts appear:
| In[36]:= |
| Out[36]= | ![]() |
When rounding radii exceed the height of the annulus, a warning is issued and artifacts appear:
| In[37]:= |
| Out[37]= | ![]() |
When the sum of rounding radii exceeds the thickness of the annulus, a warning is issued and artifacts appear:
| In[38]:= |
| Out[38]= | ![]() |
Random unit annuli:
| In[39]:= | ![]() |
| Out[39]= | ![]() |
Concentric annuli:
| In[40]:= | ![]() |
| Out[40]= | ![]() |
Use the degenerate radius specification to create a spool-like object:
| In[41]:= | ![]() |
| Out[41]= | ![]() |
Create a model of a Roman amphitheater:
| In[42]:= | ![]() |
| Out[4]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License