vScriptValLemniscate
Generate points on the polar curve r = amplitude * cos(2t), with rotation and scale controls.

vScriptValLemniscate has no input and outputs an array of XY points on a closed curve in the Z = 0 plane. Amplitude sets the size, Sample Count sets the number of points, and Rotation turns the curve.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Amplitude | Float | 0.25 | Radius multiplier in r = Amplitude * cos(2t). Minimum 0.001, default 0.25. |
| Sample Count | Integer | 360 | Number of points sampled over the curve. Clamped to 8 or more, default 360. |
| Rotation | Float | 0 | Angle added to the polar angle, in degrees. Default 0. |
| Scale | Float | 1 | Multiplier applied to X and Y after the radius is computed. Minimum 0.001, default 1. |
Read the full description
The node samples t from 0 to 2 * pi in Sample Count points, including both ends. For each t the radius is r = Amplitude * cos(2t) and the polar angle is t + Rotation. The point is X = r * cos(angle) * Scale and Y = r * sin(angle) * Scale, with Z = 0.
With the defaults (Amplitude 0.25, 360 samples, Rotation 0, Scale 1) the curve has four lobes along the X and Y axes, each reaching 0.25 from the origin. The first and last points are the same point.
Rotation is in degrees and is added to the polar angle, so it turns the whole curve around the origin. Amplitude and Scale both multiply the result, so they change the size in the same way.
Sample Count is clamped to 8 or more. The curve is r = a * cos(2t), which is the polar rose with two as the frequency (see vScriptValRoseCurve with Petals set to 2). It is not the figure-eight lemniscate of Bernoulli, which is defined by r squared = a squared * cos(2t).
Example Connections
- Draw the curve
- Offset the curve before drawing
vScriptValLemniscate.Output -> vScriptValCameraProjection.ArrayA
vScriptValCameraProjection.Output -> vScriptValShapeRender.ArrayPoint
Background.Output -> vScriptValShapeRender.Input
vScriptValLemniscate.Output -> vScriptValTranslate.ArrayA
vScriptValTranslate.Output -> vScriptValCameraProjection.ArrayA