Skip to content

<notatio-curve-3d>

<notatio-curve-3d value="KnotCurve(TorusKnot(2, 3))"> -- a curve in space, from an expression that evaluates to a list of points.

Driven by the expression, not by attributes: the figure on a page is then the same thing a reader can retype and change, and the heads that produce it (KnotCurve, LorenzCurve) are ordinary heads anyone can call.

A knot is only legible if you can see which strand passes in front, so the curve is drawn as depth-sorted arcs, each cased in the background colour: the nearer strand erases the farther where they meet. Hue runs along the parameter, so a strand can be followed through a crossing. Drag rotates, ctrl/⌘ + wheel zooms, double-click resets — the same gestures <notatio-plot-3d> uses.

packages/notatio-lit/src/notatio-curve-3d.ts· in Vue: <Curve3D>

Attributes

AttributeTypeDefaultNotes
valuestring""A notatio expression evaluating to a list of 3-D points.
pointsreadonly Triple[] | undefinedundefinedPoints to draw directly, skipping the expression. For a host that has already evaluated the curve (a worksheet has), re-parsing and re-evaluating the same expression here would double the cost of every frame. Set as a property.
azimuthnumber45Rotation about the vertical, in degrees. Dragging changes this.
elevationnumber25Viewing angle above the plane, in degrees. Dragging changes this.
zoomnumber1View scale; ctrl/cmd + wheel or a pinch changes this.
openbooleanfalseLeave the curve open, for a trajectory that is not a loop.
torusstring""Draw the torus the curve lies on, faintly, behind it: "major,minor".
labelstring""Caption drawn above the curve.
atnumberNumber.NaN
clockstring"false"