Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
numbers:physics:examples [2010/04/04 15:24] alfred |
numbers:physics:examples [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Ejemplos de física ====== | ====== Ejemplos de física ====== | ||
| ===== Leyes de Newton ===== | ===== Leyes de Newton ===== | ||
| + | |||
| + | |||
| + | |||
| ==== Movimiento de un objeto ==== | ==== Movimiento de un objeto ==== | ||
| Podemos representar un objeto en una posición (punto x,y), con una velocidad (vector), una aceleración (vector) y una masa (número) desde [[highlevel:processing|Processing]] como... | Podemos representar un objeto en una posición (punto x,y), con una velocidad (vector), una aceleración (vector) y una masa (número) desde [[highlevel:processing|Processing]] como... | ||
| Línea 10: | Línea 13: | ||
| float mass; | float mass; | ||
| float max_vel; | float max_vel; | ||
| - | |||
| Objeto(PVector loc, PVector vel, float mass) { | Objeto(PVector loc, PVector vel, float mass) { | ||
| acceleration = new PVector(0,0); | acceleration = new PVector(0,0); | ||
| Línea 17: | Línea 19: | ||
| this.mass = mass; | this.mass = mass; | ||
| } | } | ||
| - | | ||
| void update () { | void update () { | ||
| velocity.add(acceleration); | velocity.add(acceleration); | ||
| Línea 23: | Línea 24: | ||
| acceleration.mult(0); | acceleration.mult(0); | ||
| } | } | ||
| - | | ||
| void applyForce (PVector force) { | void applyForce (PVector force) { | ||
| force.div(mass); | force.div(mass); | ||
| acceleration.add(force); | acceleration.add(force); | ||
| } | } | ||
| - | | ||
| void draw () { | void draw () { | ||
| ellipse(location.x, location.y, 20, 20); | ellipse(location.x, location.y, 20, 20); | ||
| Línea 61: | Línea 60: | ||
| obj.applyForce(wind); | obj.applyForce(wind); | ||
| obj.applyForce(gravity); | obj.applyForce(gravity); | ||
| + | </code> | ||
| + | Con esto mostraríamos, para un objeto en una posición (10, 20) con masa 5 y una velocidad inicial de (-3, 2): | ||
| + | - Aceleración causada por viento desde la derecha (5, 0): <m>Aceleración por viento = viento / masa = (5,0) / 5 = (1,0)</m> | ||
| + | - Aceleración causada por la gravedad (0, 10): <m>Aceleración por gravedad = gravedad / masa = (0,10) / 5 = (0,2)</m> | ||
| + | - <m>Aceleración total = (1,0) + (0,2) = (1,2)</m> | ||
| + | - <m>Velocidad = velocidad + aceleración = (-3,2) + (1,2) = (-2,4)</m> | ||
| + | - <m>Posición = posición + velocidad = (10,20) + (-2,4) = (8,24)</m> | ||
| + | También podemos agregar resistencia con **"viscosidad"** al objeto: | ||
| + | <code java> | ||
| + | float c = -0.5; | ||
| + | PVector thingVel = obj.velocity; | ||
| + | PVector force = PVector.mult(thingVel, c); | ||
| + | obj.applyForce(force); | ||
| </code> | </code> | ||