Logo
Filmmaskiner.dk

<canvas id="ctx" width="330" height="1200"></canvas>

<script type="text/javascript">
var canvas = document.getElementById("ctx");
var ctx = canvas.getContext("2d");

function resetCanvas(){
	ctx.clearRect(0, 0, canvas.width, canvas.height);
}

var frameno = 0;
var fps = 100;

function acceleration(accel, duration, length){
	this.a = accel;
	this.d = duration;
	this.l = length;

	var snask = 1;
	for(var g = 1; g < duration; g++){
		snask = snask + Math.pow(this.a, this.d-g);
	}
	this.s = this.l/snask;
	this.calc = calcAccelPoint;
	this.outputArr = calcAccelArray;
}

function calcAccelPoint(t){
	var res = 0;
	for(var x = 1; x < t; x++){
		res = res + this.s * Math.pow(this.a, (x-1));
	}
	return res; //s * Math.pow(a,(t-1));
}

function calcAccelArray(){
	points = [];
	for(var i = 0; i < (this.d+2); i++){
		points.push(this.calc(i));
	}
	return points;
}

function drawPoint(lmargin, tmargin, pos){
	ctx.moveTo(lmargin+pos,tmargin-5);
	ctx.lineTo(lmargin+pos,tmargin+5);
	ctx.stroke();
}


function drawLines(frameno){
	for(var b = 0; b < 21; b++){
		ctx.beginPath();
		ctx.moveTo(10,b*50+50);
		ctx.lineTo(310, b*50+50);
		ctx.stroke();

		var bane = new acceleration(0.1+(b*0.1), 10, 300);
		banep = bane.outputArr();
		for(var h = 0; h < banep.length; h++){
			drawPoint(10, 50*b+50, banep[h]);
		}
		ctx.beginPath();
		ctx.arc(banep[frameno]+10, b*50+50, 10, 0, 2*Math.PI, true);
		ctx.fill();
	}
}


function sequence1() {
	setTimeout(function () {
		resetCanvas();
		frameno = frameno + 1;

		drawLines(frameno);

		if((frameno-1) < 10){
		        sequence1();
		}else{
			frameno = 0;
			sequence1();
		}
	}, fps);
}

sequence1();
</script>

Creative Commons License
Filmmaskiner.dk by Kasper Lauritzen is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
(unless other is noted)