# TubePlotToolsΒΆ

Tools for constructing tubes around 3-dimensional parametric curves.

*: (DoubleFloat, Point DoubleFloat) -> Point DoubleFloat

`s * p` returns a point whose coordinates are the scalar multiple of the point `p` by the scalar `s`, preserving the color, or fourth coordinate, of `p`.

+: (Point DoubleFloat, Point DoubleFloat) -> Point DoubleFloat

`p + q` computes and returns a point whose coordinates are the sums of the coordinates of the two points `p` and `q`, using the color, or fourth coordinate, of the first point `p` as the color also of the point `q`.

-: (Point DoubleFloat, Point DoubleFloat) -> Point DoubleFloat

`p - q` computes and returns a point whose coordinates are the differences of the coordinates of two points `p` and `q`, using the color, or fourth coordinate, of the first point `p` as the color also of the point `q`.

cosSinInfo: Integer -> List List DoubleFloat

`cosSinInfo(n)` returns the list of lists of values for `n`, in the form: `[[cos(n - 1) a, sin(n - 1) a], ..., [cos 2 a, sin 2 a], [cos a, sin a]]` where `a = 2 pi/n`. Note: `n` should be greater than 2.

cross: (Point DoubleFloat, Point DoubleFloat) -> Point DoubleFloat

`cross(p, q)` computes the cross product of the two points `p` and `q` using only the first three coordinates, and keeping the color of the first point `p`. The result is returned as a point.

dot: (Point DoubleFloat, Point DoubleFloat) -> DoubleFloat

`dot(p, q)` computes the dot product of the two points `p` and `q` using only the first three coordinates, and returns the resulting DoubleFloat.

loopPoints: (Point DoubleFloat, Point DoubleFloat, Point DoubleFloat, DoubleFloat, List List DoubleFloat) -> List Point DoubleFloat

`loopPoints(p, n, b, r, lls)` creates and returns a list of points which form the loop with radius `r`, around the center point indicated by the point `p`, with the principal normal vector of the space curve at point `p` given by the point(vector) `n`, and the binormal vector given by the point(vector) `b`, and a list of lists, `lls`, which is the cosSinInfo of the number of points defining the loop.

point: (DoubleFloat, DoubleFloat, DoubleFloat, DoubleFloat) -> Point DoubleFloat

`point(x1, x2, x3, c)` creates and returns a point from the three specified coordinates `x1`, `x2`, `x3`, and also a fourth coordinate, `c`, which is generally used to specify the color of the point.

unitVector: Point DoubleFloat -> Point DoubleFloat

`unitVector(p)` creates the unit vector of the point `p` and returns the result as a point. Note: `unitVector(p) = p/|p|`.