Nobody else seems to be helping, I'll try.
A circle is a cam with all radii being equal length. A cam is a circle with radii of unequal lengths.
A cam rotates and pushes some cam-follower in and out by the variation of it's radii as it turns. To calculate the shape of the cam, you make a list of what distances you want the cam follower to be from the center of revolution of the cam for each unit of turning.
In the case of a heart shaped cam for a wiring traverse, you pick some minimum radius for the innermost extent, and some maximum radius for the outermost extent. The difference between them is the traverse distance. Since a heart-cam is symmetrical, you only have to calculate one half, the other is the mirror image.
If, for instance, you want a 1/2" (0.50") traverse, you can calculate the length of the radius at each degree for 180 degrees. Notice that if you start with a circle of some radius and make that radius be the minimum, then you only have to add the calculated distance to the radius. Each degree gets another 1/180th of the 0.5" traverse added to it.
0 degrees, d=0 ("d" stands for what you add for each incremental degree)
1 degree d= 0.5/180 = 0.0027777"
2 degrees d= 0.00555555"
3 degrees d = 0.00833333"
4 degrees d = 0.011111"
and so on, adding 0.0027777" each time.
I haven't said how big a basic circle to add these to. That's because in some ways it doesn't matter. If you start with a "circle" of radius 0", then you add 0 to each of the calculated lengths and you get a "heart" that varies from 0 radius up to 0.5".
Why isn't it done that way? Because it's hard for the cam follower to follow it. The bigger the radius of the center circle, the easier it is to follow the variations in distance from the center.
Looking back I realize this explanation is a modell of obscurity; it wasn't intended that way, it's just hard for me to explain without pictures or equations.