Cycloidal motion generation leads to gearing (with matlab code)