Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Plot a quadric surface, automatically determining the regions of interest, view direction and scaling
ResourceFunction["QuadricPlot3D"][poly] plots the quadric surface given by poly==0. | |
ResourceFunction["QuadricPlot3D"][poly1==poly2] plots the quadric surface given by poly1==poly2. | |
ResourceFunction["QuadricPlot3D"][poly,"ShowCode"] returns the code used to create the plot, wrapped in Hold. |
A hyperboloid of one sheet:
| In[1]:= |
| Out[1]= | ![]() |
A hyperboloid of two sheets, entered in equation form:
| In[2]:= |
| Out[2]= | ![]() |
Return the code used to create an ellipsoid plot:
| In[3]:= |
| Out[3]= | ![]() |
Now deploy that code:
| In[4]:= |
| Out[4]= | ![]() |
Plot a paraboloid:
| In[5]:= |
| Out[5]= | ![]() |
QuadricPlot3D handles degenerate quadrics.
Plot a cone:
| In[6]:= |
| Out[6]= | ![]() |
Plot a pair of intersecting planes:
| In[7]:= |
| Out[7]= | ![]() |
These are intersecting planes because the polynomial factors:
| In[8]:= |
| Out[8]= |
Plot a parabolic cylinder:
| In[9]:= |
| Out[9]= | ![]() |
Plot some "random" quadrics:
| In[10]:= |
| In[11]:= |
| In[12]:= |
| Out[12]= | ![]() |
QuadricPlot3D will return unevaluated if the argument is not discernibly a polynomial of total degree 2 in three variables:
| In[13]:= |
| Out[13]= |
For some quadrics, e.g. "thin" hyperboloids of one sheet, QuadricPlot3D may show a view that obscures a part of the saddle:
| In[14]:= |
| Out[14]= | ![]() |
One can get different views simply by rotating using the mouse:


3D graphic objects can be large:
| In[15]:= |
| Out[15]= | ![]() |
| In[16]:= |
| Out[16]= |
One can reduce this considerably by rasterizing the 3D graphic object:
| In[17]:= |
| Out[17]= |
There is good fidelity in the rasterized image (though it can no longer be rotated):
| In[18]:= |
| Out[18]= | ![]() |
| In[19]:= |
| Out[19]= | ![]() |
Wolfram Language 11.3 (March 2018) or above
This work is licensed under a Creative Commons Attribution 4.0 International License