Horje
bounce of two circles javascript Code Example
bounce of two circles javascript
/*
  You should call the function resolveCollsion, when a collision between two
  circles is detected.
*/

function rotate(velocity, angle) {
    const rotatedVelocities = {
        x: velocity.x * Math.cos(angle) - velocity.y * Math.sin(angle),
        y: velocity.x * Math.sin(angle) + velocity.y * Math.cos(angle)
    }

    return rotatedVelocities;
}

function resolveCollision(particle, otherParticle) {
  	/*
    	the particles passed as parameters should be objects with
       	x and y position,
        a velocity object with x and y values,
        a mass value
        as attributes
        example of a class:
        
        function Circle() {
    		this.x = x;
    		this.y = y;
    		this.velocity = {
            	x: 5,
                y: 5
            };
    		this.mass = 2;

		}
    */
    const xVelocityDiff = particle.velocity.x - otherParticle.velocity.x;
    const yVelocityDiff = particle.velocity.y - otherParticle.velocity.y;

    const xDist = otherParticle.x - particle.x;
    const yDist = otherParticle.y - particle.y;

    if (xVelocityDiff * xDist + yVelocityDiff * yDist >= 0) {
        const angle = -Math.atan2(otherParticle.y - particle.y, otherParticle.x - particle.x);

        const m1 = particle.mass;
        const m2 = otherParticle.mass;

        const u1 = rotate(particle.velocity, angle);
        const u2 = rotate(otherParticle.velocity, angle);

        const v1 = { x: u1.x * (m1 - m2) / (m1 + m2) + u2.x * 2 * m2 / (m1 + m2), y: u1.y };
        const v2 = { x: u2.x * (m1 - m2) / (m1 + m2) + u1.x * 2 * m2 / (m1 + m2), y: u2.y };

        const vFinal1 = rotate(v1, -angle);
        const vFinal2 = rotate(v2, -angle);

        particle.velocity.x = vFinal1.x;
        particle.velocity.y = vFinal1.y;

        otherParticle.velocity.x = vFinal2.x;
        otherParticle.velocity.y = vFinal2.y;
    }
}

/*
	source:
    https://youtu.be/789weryntzM
*/




Javascript

Related
(function (g, d, a) {})(window, document, jQuery); Code Example (function (g, d, a) {})(window, document, jQuery); Code Example
Material-ui alarm icon Code Example Material-ui alarm icon Code Example
js multi section listbox Code Example js multi section listbox Code Example
remove duplicate item from array javascript Code Example remove duplicate item from array javascript Code Example
public JsonResult what is the return Code Example public JsonResult what is the return Code Example

Type:
Code Example
Category:
Coding
Sub Category:
Code Example
Uploaded by:
Admin
Views:
8