Asteroida (1)
Jest szczególnym przypadkiem hipocykloidy, gdy m, czyli liczba ostrz równa się 4. Asteroida wyrażona jest równaniem parametrycznym:
x = A*cos3φ
x = A*sin3φ
gdzie A i φ są współrzędnymi biegunowymi punktu.
Listing
/** * Rysuje asteroidę strokeStyle - kolor krzywej r promień krzywej liczbaPunktow - * liczba punktów rysujących krzywą */ var asteroida = function(r, liczbaPunktow, strokeStyle) { ctx.save(); ctx.beginPath(); ctx.translate(w / 2, h / 2); ctx.strokeStyle = strokeStyle; var x1 = r; var y1 = 0; var x2; var y2; for ( var i = 0; i < liczbaPunktow; i++) { var t = i * Math.PI / 360.0; x2 = r * Math.pow(Math.cos(t), 3); y2 = r * Math.pow(Math.sin(t), 3); ctx.moveTo(x1, y1); ctx.lineTo(x2, 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; asteroida(150, 1000, "blue");