Herramientas de usuario

Herramientas del sitio


numbers:physics:examples

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
numbers:physics:examples [2010/04/04 14:54]
alfred creado
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 =====
  
 +
 +
 +==== 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...
 +<code java>
 +class Objeto {
 +  PVector location;
 +  PVector velocity;
 +  PVector acceleration;​
 +  float mass;
 +  float max_vel;
 +  Objeto(PVector loc, PVector vel, float mass) {
 +    acceleration = new PVector(0,​0);​
 +    velocity = vel.get();
 +    location = loc.get();
 +    this.mass = mass;
 +  }
 +  void update () {
 +    velocity.add(acceleration);​
 +    location.add(velocity);​
 +    acceleration.mult(0);​
 +  }
 +  void applyForce (PVector force) {
 +    force.div(mass);​
 +    acceleration.add(force);​
 +  }
 +  void draw () {
 +    ellipse(location.x,​ location.y, 20, 20);
 +  }
 +}
 +
 +Objeto obj;
 +
 +void setup() {
 +  size (500, 500);
 +  background(255);​
 +  obj = new Objeto(new PVector(width / 2, height / 2), new PVector(0, 0), 5);
 +  strokeWeight(3);​
 +}
 +
 +void draw () {
 +  background(255);​
 +  // applyForce
 +  obj.update();​
 +  obj.draw();
 +}
 +</​code>​
 +A partir de este podemos...
 +  * **Cambiar la velocidad inicial** cambiando la creación del objeto:
 +<code java>
 +obj = new Objeto(new PVector(width / 2, height / 2), new PVector(-3, 2), 5);
 +</​code>​
 +  * **Aplicarle una o varias fuerzas**
 +<code java>
 +PVector wind = new PVector(0.3,​0);​
 +PVector gravity = new PVector(0,​0.5);​
 +obj.applyForce(wind);​
 +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>​
numbers/physics/examples.1270392851.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)