Download Physics: The very basics

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Fictitious force wikipedia , lookup

Photon polarization wikipedia , lookup

Center of mass wikipedia , lookup

Hunting oscillation wikipedia , lookup

Force wikipedia , lookup

Monte Carlo methods for electron transport wikipedia , lookup

Theoretical and experimental justification for the Schrödinger equation wikipedia , lookup

Jerk (physics) wikipedia , lookup

Routhian mechanics wikipedia , lookup

Friction wikipedia , lookup

Kinetic energy wikipedia , lookup

Seismometer wikipedia , lookup

Faster-than-light wikipedia , lookup

Derivations of the Lorentz transformations wikipedia , lookup

Classical mechanics wikipedia , lookup

Inertia wikipedia , lookup

Newton's laws of motion wikipedia , lookup

Momentum wikipedia , lookup

Specific impulse wikipedia , lookup

Relativistic angular momentum wikipedia , lookup

Centripetal force wikipedia , lookup

Rigid body dynamics wikipedia , lookup

Matter wave wikipedia , lookup

Velocity-addition formula wikipedia , lookup

Relativistic mechanics wikipedia , lookup

Equations of motion wikipedia , lookup

Classical central-force problem wikipedia , lookup

Kinematics wikipedia , lookup

Transcript
Computer Game Physics
The very basics
1
The Basics
• Force F
• Mass m
• Acceleration a: a = F/m
• Velocity v: v = a*t
• Position s: s = v*t
…if F is constant
2
Conservation of Energy
Kinetic Energy + Potential Energy = const.
Ek = ½ m * v²
Ep = m * g * h
3
How far and high will a ball fly, if it is kicked
with a speed of 10m/s and an angle of 45
degrees ?
4
Game Physics
• Not trying to build a perfect physical model
• Most things can be approximated assuming
Newtonian physics and rigid bodies
• Use discrete simulation (constant step)
techniques
• Just worry about center of mass for most
things
5
Position and Velocity
• Where is object at time t ?
• Equations
x(t) = t * x_velocity + x_initial
y(t) = t * y_velocity + y_initial
• Computation
x = x + x_velocity
y = y + y_velocity
6
Acceleration
• Computation
x_velocity = x_velocity + x_acceleration
y_velocity = y_velocity + y_acceleration
• Use piecewise linear approximation
to continuous functions
7
Projectile Motion
•
•
•
•
•
•
X = x + Vx *t
Y = y + Vy * t
Vxi = cos(A) * Vi
Vyi = sin(A) * Vi
Vx = Vx - WR(Vx - W)*t
Vy = Vy – (WR(Vy) + G(y))*t
•
•
•
•
•
W = windspeed (x only)
A = inclination angle
Vi = initial velocity
WR = wind resistance
G(y) = gravity,
depending on height
(constant if height
doesn’t change
dramatically)
8
Friction
• Conversion of kinetic energy into heat
• Different types:
– Static friction
– Kinetic or sliding friction
– Rolling friction
9
Friction
Static friction
• For non moving objects only
• Can be seen as threshold of force
needed to accelerate a mass
10
Friction
Kinetic and rolling friction
• Depending on velocity
• Can be modeled as functions of velocity
11
Collisions
• Detect that collision has occurred
(bounding box)
• Determine the time of the collision
(may need to back up to point of collision)
• Determine where objects are when they touch
• Determine the collision normal
(angle of incidence = angle of reflection)
• Determine the velocity vectors after the collision
using the
momentum
12
Momentum
Momentum p = m * v
The total momentum of a closed system is
constant, as is the energy.
This observation totally defines all collisions
13
Example: Collision of 2 spheres
Assumption:
• Sphere 2 has zero velocity before collision
• Both spheres have same mass
We get:
Conservation of momentum:
Conservation of energy:
=>
p1
= p1’ + p2’
m/2 v1² = m/2 v1’² + m/2 v2’²
p1²
= p1’² + p2’²
These 2 equations together tell us that (because of the assumption of
same mass !) the angle between v1’ and v2’ is 90deg .
This makes life simple…
14
Collision of 2 spheres
p1’
p1
p2’
15
Time-Based Modeling
• Time t is used in all kinematic equations that
move objects (to avoid discontinuities caused
by “slower” frame rates)
• This involves scaling dx and dy based on
elapsed time (rather than a virtual clock)
• This allows constant movement regardless of
processor slow downs
16