12
$\begingroup$

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?

$\endgroup$
19
$\begingroup$

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]}

enter image description here

$\endgroup$
  • $\begingroup$ 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? $\endgroup$ – martin Nov 15 '15 at 15:49
  • 1
    $\begingroup$ @martin It is a bug of versions 10.0 – 10.2, I advise to upgrade to 10.3. $\endgroup$ – ybeltukov Nov 15 '15 at 16:10
  • $\begingroup$ ok will do - thanks again :) $\endgroup$ – martin Nov 15 '15 at 16:13
4
$\begingroup$

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]]

enter image description here

ColorNegate @ EdgeDetect @ Image @ par

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.