## Visualizing Knots

Maple

From time to time, people ask me about visualizing knots in Maple. There's no formal "Knot Theory" package in Maple per se, but it is certainly possible to generate many different knots using a couple of simple commands. The following shows various examples of knots visualized using the plots:-tubeplot and algcurves:-plot_knot commands.

## Unknot

The unknot can be defined by the following parametric equations:

x=sin(t)

y=cos(t)

z=0

plots:-tubeplot([cos(t),sin(t),0,t=0..2*Pi],
radius=0.2, axes=none, color="Blue", orientation=[60,60], scaling=constrained, style=surfacecontour);

## The Trefoil Knot

The trefoil knot can be defined by the following parametric equations:

x = sin(t) + 2*sin(2*t)

y = cos(t) + 2*sin(2*t)

z = sin(3*t)

plots:-tubeplot([sin(t)+2*sin(2*t),cos(t)-2*cos(2*t),-sin(3*t), t= 0..2*Pi],

## The Figure-Eight Knot

The figure-eight can be defined by the following parametric equations:

x = (2 + cos(2*t)) * cos(3*t)

y = (2 + cos(2*t)) * sin(3*t)

z = sin(4*t)

plots:-tubeplot([(2+cos(2*t))*cos(3*t),(2+cos(2*t))*sin(3*t),sin(4*t),t=0..2*Pi],
numpoints=100, radius=0.1, axes=none, color="Red", orientation=[75,30,0], style=surface);

## The Lissajous Knot

The Lissajous knot can be defined by the following parametric equations:

Where n[x], n[y], and n[z] are integers and the phase shifts phi[x], phi[y], and phi[z] are any real numbers.
The 8 21 knot ( n[x] = 3, n[y] = 4, and n[z] = 7) appears as follows:

plots:-tubeplot([cos(3*t+Pi/2),cos(4*t+Pi/2),cos(7*t),t=0..2*Pi],

## Star Knot

A star knot can be defined by using the following polynomial:

f := -x^5+y^2
algcurves:-plot_knot(f,x,y,epsilon=0.7,
radius=0.25, tubepoints=10, axes=none, color="Orange", orientation=[60,0], style=surfacecontour);

## Two different projections of the same polynomial

By switching x and y, different visualizations can be generated:

g:=(y^3-x^7)*(y^2-x^5)+y^3;
plots:-display(<
algcurves:-plot_knot(g,y,x, epsilon=0.8, radius=0.1, axes=none, color="CornflowerBlue", orientation=[75,30,0])|
algcurves:-plot_knot(g,x,y, epsilon=0.8, radius=0.1, axes=none, color="OrangeRed", orientation=[75,0,0])>);

## More examples

f:=(y^3-x^7)*(y^2-x^5);
algcurves:-plot_knot(f,x,y,

h:=(y^3-x^7)*(y^3-x^7+100*x^13)*(y^3-x^7-100*x^13);

algcurves:-plot_knot(h,x,y,
epsilon=0.8, numpoints=400, radius=0.03, axes=none, color=["Blue","Red","Green"], orientation=[60,0,0]);