Source
``````%% d'apres les donnees de
%% http://www.mathcurve.com/courbes3d/noeuds/noeudenhuit.shtml
%% Noeud en 8, représentation de Rohit Chaudhary

-20 20 setxrange
-15 15 setyrange
10 setxunit

-200 350 0 SetCamPos
0 0 0 SetCamView
%/ScreenDist .09 def

-10 10 setxrange3d
-3 3 setyrange3d
2 setlinejoin

/g {
3 dict begin
settvar
#rpn# 32*Cos(t) - 51*Sin(t) -104*Cos(2*t) -34*Sin(2*t) + 104*Cos(3*t) - 91*Sin(3*t)
#rpn# 94*Cos(t) + 41*Sin(t) + 113*Cos(2*t) -68*Cos(3*t) - 124*Sin(3*t)
#rpn# 16*Cos(t) + 73*Sin(t) -211*Cos(2*t) -39*Sin(2*t) -99*Cos(3*t) -21*Sin(3*t)
end
} def

/g' {
3 dict begin
settvar
#rpn# -32*Sin(t) - 51*Cos(t) +208*Sin(2*t) -68*Cos(2*t) - 312*Sin(3*t) - 183*Cos(3*t)
#rpn# -94*Sin(t) + 41*Cos(t) - 226*Sin(2*t) +204*Sin(3*t) - 372*Cos(3*t)
#rpn# -16*Sin(t) + 73*Cos(t) +422*Sin(2*t) -78*Cos(2*t) +297*Cos(3*t) -63*Cos(3*t)
end
} def

/g'' {
3 dict begin
settvar
#rpn# -32*Cos(t) + 51*Sin(t) +416*Cos(2*t) +136*Sin(2*t) - 936*Cos(3*t) - 549*Sin(3*t)
#rpn# -94*Cos(t) - 41*Sin(t) - 452*Cos(2*t) +612*Cos(3*t) +1116*Sin(3*t)
#rpn# -16*Cos(t) - 73*Sin(t) + 844*Cos(2*t) +154*Sin(2*t) -891*Sin(3*t) +189*Sin(3*t)
end
} def

%rouge
%0 pi 2 mul {g} CourbeR3
%stop

.1 setlinewidth
%/aretescachees false def

GetCamPos setlightsrc
%solidgridOff

0 pi 2 mul (g) 18 [400 8] newtube
dup [.5 .6] solidputhuecolors
drawsolid**``````