Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Represent a 3D annulus
ResourceFunction["Annulus3D"][{{x1,y1,z1},{x2,y2,z2}},{rinner,router}] represents a 3D annulus around the line from {x1,y1,z1} to {x2,y2,z2} with inner radius rinner and outer radius router. | |
ResourceFunction["Annulus3D"][{{x1,y1,z1},{x2,y2,z2}},{rinner,router},{θ1,θ2}] represents a 3D annulus from angle θ1 to θ2. | |
ResourceFunction["Annulus3D"][{x,y,z},{rinner,router}] represents a planar annulus at {x,y,z} normal to the z-axis with inner radius rinner and outer radius router. | |
ResourceFunction["Annulus3D"][{x,y,z},{nx,ny,nz},{rinner,router}] represents a planar annulus with its normal given by {nx,ny,nz}. | |
ResourceFunction["Annulus3D"][{x,y,z},{nx,ny,nz},{rinner,router},{θ1,θ2}] represents a planar annulus from angle θ1 to θ2. |

A unit radius and two units height 3D annulus:
| In[1]:= |
| Out[1]= | ![]() |
Plane annulus embedded in 3D:
| In[2]:= |
| Out[2]= | ![]() |
A 3D annulus from the origin to {1,-1,1} with inner radius 1/2:
| In[3]:= |
| Out[3]= | ![]() |
Annulus sectors:
| In[4]:= | ![]() |
| Out[4]= | ![]() |
Differently styled annuli:
| In[5]:= | ![]() |
| Out[5]= | ![]() |
Specify centers of 3D annuli:
| In[6]:= | ![]() |
| Out[6]= | ![]() |
Specify centers of planar annuli:
| In[7]:= | ![]() |
| Out[7]= | ![]() |
3D annuli with different directions:
| In[8]:= |
| Out[8]= | ![]() |
Equivalent scene with plane annuli:
| In[9]:= |
| Out[9]= | ![]() |
A plane annulus at the origin with normal vector {1,-1,1} and inner radius 1/2:
| In[10]:= |
| Out[10]= | ![]() |
Specify radii of 3D annuli:
| In[11]:= |
| Out[11]= | ![]() |
Specify radii of plane annuli:
| In[12]:= | ![]() |
| Out[12]= | ![]() |
Specify position, direction, as well as inner and outer radii:
| In[13]:= |
| Out[13]= | ![]() |
Short form for a 3D annulus centered at the origin with a radius 1:
| In[14]:= |
| Out[14]= | ![]() |
Specify the initial and final angle for the annulus sector:
| In[15]:= |
| Out[15]= | ![]() |
Equivalent scene for the plane annulus:
| In[16]:= |
| Out[16]= | ![]() |
Color directives specify the face color of each annulus:
| In[17]:= |
| Out[17]= | ![]() |
Different properties can be specified for the front and back faces using FaceForm:
| In[18]:= | ![]() |
| Out[18]= | ![]() |
For 3D annuli the FaceForm corresponds to the outer and inner faces:
| In[19]:= |
| Out[19]= | ![]() |
Opacity specifies the face opacity:
| In[20]:= |
| Out[20]= | ![]() |
Decompose the annulus into its components and apply different styling to each:
| In[21]:= |
| In[22]:= |
| Out[22]= | ![]() |
For planar annuli, only one component is returned, for which different EdgeForm and FaceForm can be given:
| In[23]:= |
| Out[23]= | ![]() |
A simple 3D bar chart:
| In[24]:= |
| In[25]:= | ![]() |
| Out[25]= | ![]() |
A simple 3D pie chart:
| In[26]:= |
| In[27]:= |
| In[28]:= | ![]() |
| Out[28]= | ![]() |
Annulus3D is a 3D generalization of Annulus in 2D:
| In[29]:= |
| Out[29]= | ![]() |
For very small inner radii, Annulus3D reduces to Cylinder:
| In[30]:= | ![]() |
| Out[30]= | ![]() |
PieChart3D can be used to create 3D annuli:
| In[31]:= |
| Out[31]= | ![]() |
Get the graphical primitive from PieChart3D:
| In[32]:= |
| In[33]:= |
| Out[33]= | ![]() |
Despite being seemingly the same as the object returned by Annulus3D, the latter has no “seam”:
| In[34]:= | ![]() |
| Out[34]= | ![]() |
When the two endpoints coincide, no 3D annulus is created:
| In[35]:= |
| Out[35]= | ![]() |
Use the planar specification instead:
| In[36]:= |
| Out[36]= | ![]() |
Radii are assumed to be positive real numbers:
| In[37]:= |
| Out[37]= | ![]() |
When the inner radius exceeds the outer one, a warning is issued:
| In[38]:= |
| Out[38]= | ![]() |
When the normal vector in the specification of a planar annulus is zero, the default setting is used:
| In[39]:= |
| Out[39]= | ![]() |
Random annuli:
| In[40]:= | ![]() |
| Out[40]= | ![]() |
Interlaced annuli:
| In[41]:= | ![]() |
| Out[41]= | ![]() |
An annulus sector and its shadow:
| In[42]:= | ![]() |
| Out[42]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License