
Spirala kwadratowa
Listing
/**
* lg - długość pierwszego odcinka
* xx - współrzędna x punktu startowego
* yy - współrzędna y punktu startowego
* alfa - odleglosc między skrętami
*/
function spiralaKwadratowa(ctx, lg, xx, yy, alfa) {
if (lg > 0) {
ctx.moveTo(xx, yy);
ctx.lineTo(xx + lg, yy);//1 linia
ctx.lineTo(xx + lg, yy + lg);//2 linia
ctx.lineTo(xx + alfa, yy + lg);//3 linia
ctx.lineTo(xx + alfa, yy + alfa);//4 linia
spiralaKwadratowa(ctx, lg - 2 * alfa, xx + alfa, yy + alfa,
alfa);//nastepny segment
}
}
var cv = document.getElementById("canvas");
var ctx = cv.getContext("2d");
ctx.lineWidth = 1;
ctx.strokeStyle = "red";
ctx.beginPath();
spiralaKwadratowa(ctx, 450, 10, 10, 10);
ctx.stroke();
ctx.restore();
