$SPAD/src/input tknot.input

The Axiom Team December 3, 2016

Abstract

Contents

2

1 License

— license —

--Copyright The Numerical Algorithms Group Limited 1994.

———-

— * —

\getchunk{license}
-- Create a (p,q) torus-knot with radius r around the curve.
-- The formula was derived by Larry Lambe.
-- To produce a trefoil knot:
--   torusKnot(2, 3, 0.5, 10, 200)
-- compile, don't interpret functions
)set function  compile on
-- read in the numeric generalized tube program
)read ntube
-- Create a (p,q) torus-knot with radius r around the curve.
-- The formula was derived by Larry Lambe.
-- To produce a trefoil knot:
--   torusKnot(2, 3, 0.5)
torusKnot(p:DFLOAT, q:DFLOAT, r:DFLOAT, uSteps:PI, tSteps:PI):VIEW3D ==
  -- equation for the torus knot
  knot := (t:DFLOAT):Point DFLOAT +->
    fac := 4/(2.2@DFLOAT-sin(q*t))
    fac * point [cos(p*t), sin(p*t), cos(q*t)]
  -- equation for the cross section of the tube
  circle := (u:DFLOAT, t:DFLOAT):Point DFLOAT +->
    r * point [cos u, sin u]
  -- draw the tube around the knot
  ntubeDrawOpt(knot, circle, 0..2*%pi, 0..2*%pi, var1Steps == uSteps,
               var2Steps == tSteps)

———-

References^{[1] nothing}

4