A Roulette is a curve derived by rolling one curve against another. In the image below, the blue point on the blue ellipse is rolled along a straight line (the x-axis) to generate the purple curve (which is called an undularly).
Included here is some Matlab code to generate roulette curves, with a fair degree of generality, but also showing how to generate specific instances such as cycloids, trochoids, the Cissoid of Dioclese, and the undularly and nodary.
Examples:
cycloid: a point on the rim of a circle as the circle rotates along a line.
trochoids: a point anywhere in relation to a circle as the circle rotates along a line (a cycloid is a special case).
undularly: the focus of an ellipse, as the hyperbola rotates along a line.
nodary: the focus of a hyperbola, as the hyperbola rotates along a line.