Computer programming/Physics
About This Document
I have programmed a (working) 2D physics system before and I am currently in college as a Physics Engineering major, so I have experience, but I am by no means an industry expert, so I'm going to start this document and hope that either someone who knows this stuff steps in and takes over or guides me so that I can do this correctly.
Also, if my formatting looks bad, any one can feel free to change it.
About Physics
Computer programs today simulate physical systems for various purposes, such as realism in games and testing mechanical prototypes before construction. Added with the current trend of increasing processing power, these physical simulations are continually becoming more complicated and elaborate. As such where physics is applicable, programs without these capabilities appear more simple and primitive and thus less desirable compared to programs with these abilities.
Not all programs require the full range of computational capabilities. Most games only require the ability to accurately calculate mechanical processes. Programs like the ones used to test objects need more complex abilites, like calculating the heat given off by the friction between two surfaces. Some programs may even find it desirable to perform pseudo-calculations, calculations based upon physics yet tweaked to achieve a more desirable behavior, or they may just represent a very narrow range of processes that can occur.
Concepts and Programming in Physics
Prerequisites
To program for physics or using physics one should be familiar with some widely-applicable concepts and techniques:
- Algebra
- Coordinate Systems
- 2D
- cartesian (x, y)
- polar - distance and direction (r, θ)
- parametric
- 3D
- cartesian (x, y, z)
- polar - distance and two angles (ρ, θ, φ)
- parametric
- (Higher dimensions to be addressed under "Relativity")
- 2D
- Trigonometry
- Series Approximations (Pre-Calculus)
- Numerical Methods for Calculus
and Differential Equations
- ...
- Iteration
- Matrices and Matrix Math
- Determinant
- Matrix Multiplication
- ...
- Boundary Conditions
- Complex Math (involving )
- Addition of Complex Numbers
- Multiplication of Complex Numbers
- Complex Exponentiation and Logartihms
- Hyperbolic Trigonometry
Mechanics
- Frames of Reference
- Vectors
- Vector Addition
- Dot Product
- Cross Product
- Matrix Product
- Forces
- Momentum
- Energy
- Collisions and Geometric Forces
- Simple Harmonic Motion, Springs
- Friction
- Static Friction
- Kinetic Friction
- Rolling, Wheels
- Friction in Air and Other Fluids
- Hydrodynamics
- Computer programming/Physics/Position of an accelerating body function
- Computer programming/Physics/Position of an accelerating body function (constant acceleration)
- Computer programming/Physics/Motion of an object through space (piecemeal approximation)
Thermodynamics
- Brownian Motion
- Heat and Temperature
- "Zeroth Law"
- First Law
- Second Law
- Third Law
Atoms and Molecules
Electricity
Optics
Relativity
Quantum Mechanics
Miscellaneous
Fluid dynamics - someone undelete the fluid dynamics link on this page: http://en.wikisource.org/wiki/Wikisource:Source_code#Mechanics