
Hipocykloida
Jest to krzywa kreślona przez punkt M okręgu toczącego się bez poślizgu po wewnętrznej stronie okręgu nieruchomego koła.
Hipocykloida wyrażona jest takim samym równaniem parametrycznym jak epicykloida, ale parametr a jest zamieniony na – a, a symbole są takie same jak przy epicykloidzie.
Kształt krzywej zależy od stosunku

Gdy:
- m=2 krzywa degeneruje do średnicy stałego koła
 - m=3 hipocykloida ma 3 ostrza
 - m=4 otrzymujemy hipocykloidę o 4 ostrzach nazywaną asteroidą.
 
Hipotrochoida
Do równania hipocykloidy, w drugim członie każdego równania można wprowadzić dodatkowy parametr λ
Jeżeli:
- λ=1 jak w powyższych wzorach otrzymujemy hipocykloidę
 - λ > 0 to otrzymujemy tzw. hipocykloidę wydłużoną
 - λ < 0 to otrzymujemy tzw. hipocykloidę skróconą.
 
Wszystkie trzy hipocykloidy noszą ogólną nazwę hipotrochoida.
W hipotrochoidach gdy krzywa staje się elipsą, gdy A=2a otrzymujemy konchoidę nazywaną też ślimakiem Pascala.
m=3 (A=60, a=20), λ=1
		
		
Listing
var hipocykloida = function(AA, aa, lambda, liczbaPunktow,
					strokeStyle) {
	ctx.save();
	ctx.beginPath();
	ctx.strokeStyle = strokeStyle;
	ctx.translate(w / 2, h / 2);
	var x1 = AA + (lambda - 1) * aa;
	var y1 = 0;
	var x2;
	var y2;
	aa = -aa;
	for (var i = 0; i < liczbaPunktow; i++) {
		var t = i * Math.PI / 360;
		x2 = (AA + aa) * Math.cos(t) - lambda * aa
				* Math.cos((AA + aa) * t / aa);
		y2 = (AA + aa) * Math.sin(t) - lambda * aa
				* Math.sin((AA + aa) * t / aa);
		ctx.moveTo(Math.floor(x1), Math.floor(y1));
		ctx.lineTo(Math.floor(x2), Math.floor(y2));
		x1 = x2;
		y1 = y2;
	}
	ctx.stroke();
	ctx.restore();
};
var cv = document.getElementById("canvas");
var ctx = cv.getContext("2d");
var w = cv.width;
var h = cv.height;
hipocykloida(60, 20, 1, 2000, "green");
Spróbuj też wywołać krzywe z następującymi
			parametrami
m=4 (A=60, a=15), λ=1
			hipocykloida(60, 15, 1, 2000, "green");
		
		
m=5 (A=60, a=12), λ=1
			hipocykloida(60, 12, 1, 2000, "green");
		
		
m=4 (A=100, a=25), λ=0.5
			hipocykloida(100, 25, 0.5, 2000, "green");
		
		
m=4 (A=100, a=25), λ=1.5
			hipocykloida(100, 25, 1.5, 2000, "green");
		
		
m=4 (A=100, a=-25), λ=0.5
			hipocykloida(100, -25, 0.5, 2000, "green");
		
		
m=2 (A=100, a=50), λ=1.5
			hipocykloida(100, 50, 1.5, 2000, "green");
		
		
