[ create a new paste ] login | about

Link: http://codepad.org/dEKtpZlt    [ raw code | fork ]

hurracane - C, pasted on May 21:
(let* (       (ObjMass (obj 'getMass))
              (collisionObjMass (collisionObj 'getMass))
              (normalVec ((origin 'getNormalVec) otherOrig))
              (unitNormalVec (normalvec 'getUnitNormalVec))
              (unitTangentVec (unitNormalVec 'getUnitTangentVec))
              (initialVelocity-obj (obj 'getSpeedVec))
              (initialVelocity-collisionObj (collisionObj 'getSpeedVec))
              (scalarVelocity-v1n ((unitNormalVec 'getDotProduct) initialVelocity-obj))
              (scalarVelocity-v1t ((unitTangentVec 'getDotProduct) initialVelocity-obj))
              (scalarVelocity-v2n ((unitNormalVec 'getDotProduct) initialVelocity-collisionObj))
              (scalarVelocity-v2t ((unitTangentVec 'getDotProduct) initialVelocity-collisionObj))
              (newNormalVelocity (makeVector (/ (+ (* scalarVelocity-v1n (- objMass collisionObjMass))
                                                   (* 2 collisionObjMass scalarVelocity-v2n))
                                                (+ objMass collisionObjMass))
                                             (/ (+ (* scalarVelocity-v2n (- collisionObjMass objMass))
                                                   (* 2 objMass scalarVelocity-v1n))
                                                (+ objMass collisionObjMass))))
              (normalVel-v1n (newNormalVelocity 'getX))
              (normalVel-v2n (newNormalVelocity 'getY))
              (v1n ((unitNormalVec 'vec*) normalVel-v1n))
              (v1t ((unitTangentVec 'vec*) scalarVelocity-v1t))
              (v2n ((unitNormalVec 'vec*) normalVel-v2n))
              (v2t ((unitTangentVec 'vec*) scalarVelocity-v2t))
              (finalVelocity-obj ((v1n 'vec+) v1t))
              (finalVelocity-collisionObj ((v2n 'vec+) v2t)))


Create a new paste based on this one


Comments: