
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");
