From 7c09e42058cda8953183cf467d7c7159f4ab518f Mon Sep 17 00:00:00 2001
From: koz01 <koz01@PCFEIB405-134.msad.vsb.cz>
Date: Wed, 20 Sep 2023 10:27:40 +0200
Subject: [PATCH] 2023_Wed_900_koz01_solution

---
 src/main/java/lab/DrawingThread.java | 43 +++++++++++++++++++++++++---
 1 file changed, 39 insertions(+), 4 deletions(-)

diff --git a/src/main/java/lab/DrawingThread.java b/src/main/java/lab/DrawingThread.java
index 63badd7..33f9801 100644
--- a/src/main/java/lab/DrawingThread.java
+++ b/src/main/java/lab/DrawingThread.java
@@ -3,11 +3,27 @@ package lab;
 import javafx.animation.AnimationTimer;
 import javafx.scene.canvas.Canvas;
 import javafx.scene.canvas.GraphicsContext;
+import javafx.scene.paint.Color;
 
 public class DrawingThread extends AnimationTimer {
 
+	private static final double FPS = 100; 
+	
 	private final Canvas canvas;
+	
 	private final GraphicsContext gc;
+	
+	private double p_x = 5;
+	
+	private double p_y = 300;
+	
+	private double v_x = 50;
+	
+	private double v_y = -50;
+	
+	private double g_y = 9.81;
+	
+	private long previousTime;
 
 	public DrawingThread(Canvas canvas) {
 		this.canvas = canvas;
@@ -20,11 +36,30 @@ public class DrawingThread extends AnimationTimer {
 	 */
 	@Override
 	public void handle(long now) {
+		if (previousTime > 0) {
+			double deltaT = (now - previousTime) / 1e9;
+			if (deltaT < 1/FPS) {
+				return;
+			}
+			p_x = p_x + v_x * deltaT;
+			p_y = p_y + v_y * deltaT;
+			v_y = v_y + g_y * deltaT;
+			
+		}
+		
+		gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());
+		
+		drawUFO(p_x, p_y);
+		previousTime = now;
+	}
+
+	
+	void drawUFO(double x, double y) {
 		// put your code here
-		//gc.setFill(Color.AQUA);
-		//gc.setStroke(Color.BLACK);
-		//gc.fillOval(10, 10, 20, 20);
+		gc.setFill(Color.SILVER);
+		gc.fillOval(15 + x, y, 30, 20);
+		gc.setFill(Color.INDIANRED);
+		gc.fillRect(x, 8 + y, 60, 2);
 
 	}
-
 }
-- 
GitLab