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