# Adapting KnotDiagramData to form more visually pleasing diagram

Graphics[KnotData[{5, 1}, "KnotDiagramData"]] gives

but I would like to create diagrams like this

remeniscent of Celtic knot designs (which I made by adapting the above Mathematica image in Illustrator). Is there any way to do this in Mathematica directly?

• Nov 14, 2015 at 14:12
• Hey Martin: It's not Mathematica, but check out the KnotPlot site for everything knotical. Nov 14, 2015 at 16:52
• @KennyColnago great stuff - thanks for the link :) Nov 15, 2015 at 15:51

You can use a common 3D trick with double boundary (1, 2, 3):

fun = KnotData[{5, 1}, "SpaceCurve"];
ParametricPlot3D[fun[t], {t, 0, 2 Pi}, PlotPoints -> 100, MaxRecursion -> 1,
Axes -> False, Boxed -> False, ViewPoint -> {0, 0, ∞},
ViewVertical -> {0, -1, 0}, PlotRange -> All,
Lighting -> {{"Ambient", White}}] /.
Line[pts_] :> {White, Tube[pts, 0.1], FaceForm[Opacity[0], Black],
Tube[pts, 0.12]}


• Nice solution thanks! :) One minor poit - mine is showing up slightly differently to youur - ie with contour lines - I an on v.10.2 - can you relpicate this? Nov 15, 2015 at 15:49
• @martin It is a bug of versions 10.0 – 10.2, I advise to upgrade to 10.3. Nov 15, 2015 at 16:10
• ok will do - thanks again :) Nov 15, 2015 at 16:13

This is only a first idea how one could proceed

KnotData[{5, 1}, "Name"]


"Solomon seal knot"

fun = KnotData["Solomon seal knot", "SpaceCurve"];

par =
ParametricPlot3D[fun[t], {t, 0, 2 Pi},
Axes -> False,
Boxed -> False,
ViewPoint -> Above,
ImageSize -> Medium,
PlotStyle -> Thickness[0.05]]


ColorNegate @ EdgeDetect @ Image @ par