Skip to content

Commit 5ab83a6

Browse files
Optimization
Made things go faster
1 parent 2e47465 commit 5ab83a6

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

JS/MainLoop.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ function mainLoop(particlesLeft, particlesRight, translation) {
1616
backgroundLoop();
1717
c = ctx;
1818

19-
particlesLeft.forEach(function (particle, i) {
19+
particlesLeft.map(function (particle, i) {
2020
leftTemps.push(particle.vel.r);
21+
particle.x += particle.vel.x / particle.mass;
22+
particle.y += particle.vel.y / particle.mass;
2123
c.fillStyle = particleColor;
2224
reflectParticle(particle, 0, i, particlesLeft, particlesRight);
2325
particleCollisions(i, particlesLeft);
2426
particle.fill(c, particle.radius);
25-
particle.x += particle.vel.x / particle.mass;
26-
particle.y += particle.vel.y / particle.mass;
2727

2828
c.strokeStyle = 'black';
2929
c.lineWidth = 0.2;
@@ -32,14 +32,14 @@ function mainLoop(particlesLeft, particlesRight, translation) {
3232
roundedTempLeft = Math.round(average(leftTemps)* particleMass * roundingAccuaracy)/roundingAccuaracy;
3333
$('#tempLeft').html(roundedTempLeft);
3434

35-
particlesRight.forEach(function (particle, i) {
35+
particlesRight.map(function (particle, i) {
3636
rightTemps.push(particle.vel.r);
37+
particle.x += particle.vel.x / particle.mass;
38+
particle.y += particle.vel.y / particle.mass;
3739
c.fillStyle = particleColor;
3840
reflectParticle(particle, translation, i, particlesLeft, particlesRight);
3941
particleCollisions(i, particlesRight);
4042
particle.fill(c, particle.radius);
41-
particle.x += particle.vel.x / particle.mass;
42-
particle.y += particle.vel.y / particle.mass;
4343

4444
c.strokeStyle = 'black';
4545
c.lineWidth = 0.2;
@@ -78,13 +78,14 @@ function average(array) {
7878

7979
function particleCollisions(checkIndex, particles) {
8080
particle = particles[checkIndex];
81-
particles.forEach(function (particleToCheck, i) {
82-
if (i != checkIndex && i != 0) {
81+
particles.map(function (particleToCheck, i) {
82+
if (i != checkIndex && i != 0 && i < checkIndex) {
8383
var distance = particleToCheck.distance(particle);
84-
if (distance.r < particleToCheck.radius + particle.radius) {
84+
if (distance.r <= particleToCheck.radius + particle.radius) {
8585
let wallAngle = distance.deg + 90;
8686
particle.vel.deg = 2 * wallAngle - particle.vel.deg;
8787
let newSpeed = (particleToCheck.vel.r + particle.vel.r) / 2
88+
particleToCheck.vel.deg = 2 * wallAngle + particleToCheck.vel.deg;
8889
particleToCheck.vel.r = newSpeed;
8990
particle.vel.r = newSpeed;
9091
}

0 commit comments

Comments
 (0)