Test bouncing balls
by BeNdErR
HTML
<button id="start">Start</button>
<button id="end">End</button>
<br />
<canvas id="canvas" width="600" height="600"></canvas>
JavaScript
(function () {
function init() {
var interval;
var massMultiplier = 0.01;
var canvas = document.getElementById("canvas");
var canvasBackground = "#666699";
var context = canvas.getContext("2d");
var collisions = [];
var circles = [{
x: 400,
y: 400,
r: 50,
color: "#00FFFF",
vx: 1,
vy: 2
}, {
x: 170,
y: 80,
r: 20,
color: "#FF99FF",
vx: 10,
vy: -5
},{
x: 400,
y: 75,
r: 70,
color: "#33CC33",
vx: 2,
vy: 2
},{
x: 75,
y: 195,
r: 55,
color: "#33CC33",
vx: -4,
vy: -3
},{
x: 300,
y: 350,
r: 40,
color: "#FF00FF",
vx: 0,
vy: -4
}];
var container = {
x: 0,
y: 0,
width: canvas.width,
height: canvas.height
};
function drawCanvas() {
context.fillStyle = canvasBackground;
context.fillRect(container.x, container.y, container.width, container.height);
}
function draw() {
drawCanvas();
//--- Check collisioni
var circlesCopy = circles.slice();
collisions = [];
while (circlesCopy.length > 1) {
var firstCircle = circlesCopy.shift();
for (var x = 0; x < circlesCopy.length; x++) {
//--- Calcolo la distanza tra i due centri
var a = firstCircle.x - circlesCopy[x].x;
var b = firstCircle.y - circlesCopy[x].y;
var dist = Math.sqrt(a * a + b * b);
if (dist < (firstCircle.r + circlesCopy[x].r)) {
//--- Evidenzio...