I'm trying to create a 3D Cardioid, for which I would like to control/adjust the thickness along the axis perpendicular to the cusp. Do I use the cardioid's parametric equations for X and Y? What about Z? I'm getting "Error Evaluating Expression."
Cardioid with Geometry Nodes
I was able to make a basic cardioid using Blender's Geometry Nodes by following the parametric equations for X and Y on the wikipedia page
- Add a new
Geometry Nodesmodifier to the default cube.
- Add a
Curve Circlenode and connect it to the
Geometryoutput. Increase the
Resolutionto get a smoother curve.
- Insert a
Set Positionnode after the
- Use a
Spline Parameternode to get the angle around the unit circle. The
1.0represents a full turn. We want a full turn to be
2 * piso add a
Multiplynode after the
Factoroutput. You can type
2 * piand Blender will recognize that. I'll call this parameter t from now on
Mathnodes to to set up simplified parametric equations for
Y$$x(t) = 2\cos t - \cos 2t$$ $$y(t) = 2\sin t - \sin 2t$$
Combine XYZnode and plug that into the
Positioninput of the
Multiply node can be added after the calculation for x(t) to make the whole curve wider along the axis where the cusp sits. This is effectively introducing a back into the parametric equation. $$x(t) = a(2\cos t - \cos 2t)$$
The Z Dimension
Without a specific description of how the final 3D Cardioid should look it's hard to give guidance, but a cool way I found to bring the
Z dimension into it was to add nodes for $$z(t) = \sin t$$ and then mess with the
Multiply nodes on the Spline Parameter Factor.