From 9dc3f63650f260d4be2c869b80c94be0e99c760b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz> Date: Tue, 13 Sep 2022 13:46:18 +0200 Subject: [PATCH] Add width,height to world. Remove air resistance force. --- src/main/java/lab/BulletAnimated.java | 15 ++++----------- src/main/java/lab/DrawingThread.java | 4 ++-- src/main/java/lab/World.java | 6 ++++++ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java index 58acd4f..4ec882b 100644 --- a/src/main/java/lab/BulletAnimated.java +++ b/src/main/java/lab/BulletAnimated.java @@ -12,13 +12,10 @@ public class BulletAnimated { private Point2D initialSpeed; private double size; private double mass = 2; - private double strenghtOfCannon = 2; + private double strenghtOfCannon = 80; private double cannonLength = 100; private boolean accelerate = true; private boolean hitToGround = false; - - private double crossSectionalArea; - private double dragCoefficient = 0.47; private Image image; private World world; @@ -55,15 +52,11 @@ public class BulletAnimated { .multiply(1 / mass)); } else if (!hitToGround) { accelerate = false; - Point2D airResistanceforce = new Point2D( - -1. / 2 * crossSectionalArea * Constants.AIR_DENSITY * dragCoefficient * Math.pow(speed.getX(), 2), - -1. / 2 * crossSectionalArea * Constants.AIR_DENSITY * 0.47 * Math.pow(speed.getY(), 2)); - Point2D acceleration = new Point2D(-airResistanceforce.getX() * mass, - (-Constants.GRAVITATIONAL_ACCELERATION + airResistanceforce.getY()) * mass); - speed = speed.add(acceleration.multiply(timeStep / 1000)); + Point2D acceleration = new Point2D(0, -Constants.GRAVITATIONAL_ACCELERATION*50 * mass); + speed = speed.add(acceleration.multiply(timeStep)); } if (!hitToGround) { - position = position.add(speed); + position = position.add(speed.multiply(timeStep)); if (!accelerate && position.getY() <= size / 2) { hitToGround = true; position = new Point2D(position.getX(), size / 2); diff --git a/src/main/java/lab/DrawingThread.java b/src/main/java/lab/DrawingThread.java index aa963ee..af51eac 100755 --- a/src/main/java/lab/DrawingThread.java +++ b/src/main/java/lab/DrawingThread.java @@ -28,8 +28,8 @@ public class DrawingThread extends AnimationTimer { gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight()); world.draw(); if (lasttime > 0) { - //time are in nanoseconds and method simulate expects miliseconds - world.simulate((now - lasttime) / 1e6); + //time are in nanoseconds and method simulate expects seconds + world.simulate((now - lasttime) / 1e9); } lasttime = now; } diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java index 370989a..c83521d 100644 --- a/src/main/java/lab/World.java +++ b/src/main/java/lab/World.java @@ -32,6 +32,12 @@ public class World { cannon.simulate(timeDelta); } + public double getWidth() { + return canvas.getWidth(); + } + public double getHeight() { + return canvas.getHeight(); + } } -- GitLab