This preserves the legacy gflow parameterization:
x = scale * sin(t) + 2 * sin(2*t),
y = scale * cos(t) - 2 * cos(2*t), and
z = -scale * sin(3*t).
Examples
synthetic.trefoil(scale = 0.5, t.range = c(0, pi))
#> $kind
#> [1] "geometry"
#>
#> $family
#> [1] "trefoil"
#>
#> $version
#> [1] 1
#>
#> $parameters
#> $parameters$intrinsic.dim
#> [1] 1
#>
#> $parameters$ambient.dim
#> [1] 3
#>
#> $parameters$canonical.dim
#> [1] 3
#>
#> $parameters$scale
#> [1] 0.5
#>
#> $parameters$t.range
#> [1] 0.000000 3.141593
#>
#> $parameters$frame
#> [1] "canonical"
#>
#> $parameters$frame.algorithm
#> NULL
#>
#> $parameters$frame.matrix
#> NULL
#>
#> $parameters$offset
#> [1] 0 0 0
#>
#>
#> attr(,"class")
#> [1] "synthetic_trefoil_geometry" "synthetic_geometry"
#> [3] "synthetic_component"