Ellipse
Generates an elliptical shape with independent horizontal and vertical sizing.
Category: Shapes Menu path: Shapes > Ellipse
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
out | shape | output | Ellipse shape data |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
sizeX | scalar | 200 | Horizontal diameter in pixels |
sizeY | scalar | 200 | Vertical diameter in pixels |
Expose Channels
When enabled (E button on node header), adds input ports that override params via edge connections:
| Port | Type | Overrides |
|---|---|---|
sizeX_in | scalar | sizeX |
sizeY_in | scalar | sizeY |
How It Works
Generates a closed elliptical path centered at the origin in local space. Unlike Circle (which uses a single radius), Ellipse defines its shape using independent horizontal and vertical diameters. When sizeX equals sizeY, the result is a perfect circle. The shape is pure geometry data (no GPU allocation) and must be rasterized via DrawShape to produce a visible image.
Usage Examples
Basic: Draw an oval
Ellipse -> Transform2D -> DrawShape -> Output. Set sizeX to 300 and sizeY to 150 for a wide oval.
Animated squash and stretch
Keyframe sizeX and sizeY inversely (one grows as the other shrinks) for a classic squash-and-stretch animation.
Procedural aspect
Connect separate scalar sources (Math, Noise, etc.) to the sizeX_in and sizeY_in expose channels for independently driven axes.
Tips
- For a perfect circle, set
sizeXandsizeYto the same value -- or just use the Circle node, which is simpler. - Shapes are centered at the origin. Use Transform2D for all positioning and rotation.
- All params are keyframeable for animation.
Related Nodes
- Circle -- single-radius circle (simpler when you need a perfect circle)
- Rectangle -- rectangular shape with optional corner rounding
- Transform2D -- positions and scales the shape in the composition
- DrawShape -- rasterizes shapes to pixels with fill/stroke