TorusKnotGetPos function

void TorusKnotGetPos(
  1. double u,
  2. int q,
  3. int p,
  4. double radius,
  5. double heightScale,
  6. Vector3 vec,
)

Parametric representation of a TorusKnot u varies from 0 - 2 PI q == 0 and p == 1 results in a torus

Implementation

void TorusKnotGetPos(
    double u, int q, int p, double radius, double heightScale, VM.Vector3 vec) {
  final double cq = Math.cos(q * u);
  final double sq = Math.sin(q * u);
  final double cp = Math.cos(p * u);
  final double sp = Math.sin(p * u);

  vec.x = radius * (2.0 + cq) * 0.5 * cp;
  vec.y = radius * (2.0 + cq) * 0.5 * sp;
  vec.z = heightScale * radius * 0.5 * sq;
}