From 69ed3d5826b662b2e73871a7c0abcf60ca15b754 Mon Sep 17 00:00:00 2001
From: charlie52u <quentin.charlier8@etu.univ-lorraine.fr>
Date: Tue, 12 Dec 2023 10:52:29 +0100
Subject: [PATCH] ajout de la ligne d'horizon

---
 .../com/example/view_editor/Orientations.java |  5 +++
 .../view_editor/views/DrawHorizon.java        | 43 +++++++++++++++++++
 .../main/res/layout/activity_orientations.xml |  9 +++-
 3 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java

diff --git a/view_editor/app/src/main/java/com/example/view_editor/Orientations.java b/view_editor/app/src/main/java/com/example/view_editor/Orientations.java
index a667894..39e8c94 100644
--- a/view_editor/app/src/main/java/com/example/view_editor/Orientations.java
+++ b/view_editor/app/src/main/java/com/example/view_editor/Orientations.java
@@ -7,6 +7,7 @@ import android.hardware.SensorManager;
 import androidx.appcompat.app.AppCompatActivity;
 import android.os.Bundle;
 import com.example.view_editor.views.DrawBoussole;
+import com.example.view_editor.views.DrawHorizon;
 
 public class Orientations extends AppCompatActivity implements SensorEventListener{
 
@@ -17,6 +18,7 @@ public class Orientations extends AppCompatActivity implements SensorEventListen
     private float[] simpleGravity = new float[3];
     private float azimuth;  // Angle en degrés
     DrawBoussole db;
+    DrawHorizon dh;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -24,6 +26,7 @@ public class Orientations extends AppCompatActivity implements SensorEventListen
         setContentView(R.layout.activity_orientations);
 
         db = findViewById(R.id.drawBoussole_view);
+        dh = findViewById(R.id.drawHorizon_view);
 
         sm = (SensorManager) getSystemService(SENSOR_SERVICE);
         sMagnet = sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
@@ -45,6 +48,8 @@ public class Orientations extends AppCompatActivity implements SensorEventListen
 
         if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
             simpleGravity = event.values;
+            float inclinaison = (float) Math.toDegrees(Math.atan2(simpleGravity[0], simpleGravity[1]));
+            dh.draw(inclinaison);
         }
 
         if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
diff --git a/view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java b/view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java
new file mode 100644
index 0000000..1a61486
--- /dev/null
+++ b/view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java
@@ -0,0 +1,43 @@
+package com.example.view_editor.views;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.util.AttributeSet;
+import android.view.View;
+
+public class DrawHorizon extends View {
+
+    Paint paint;
+    float inclinaison;
+
+    public DrawHorizon(Context c, AttributeSet attr){
+        super(c, attr);
+
+        inclinaison = 0;
+
+        paint = new Paint();
+        paint.setStrokeWidth(5.0f);
+        paint.setStyle(Paint.Style.STROKE);
+
+    }
+
+    public void draw(float inclinaison){
+        this.inclinaison = inclinaison;
+        invalidate();
+    }
+
+    @Override
+    public void onDraw(Canvas cv){
+        super.onDraw(cv);
+
+        int centerY = getHeight()/2;
+
+        cv.rotate(-inclinaison, getWidth()/2, centerY);
+        cv.drawLine(0, centerY, getWidth(), centerY, paint);
+
+
+
+    }
+
+}
diff --git a/view_editor/app/src/main/res/layout/activity_orientations.xml b/view_editor/app/src/main/res/layout/activity_orientations.xml
index b2a8020..bcbb2bc 100644
--- a/view_editor/app/src/main/res/layout/activity_orientations.xml
+++ b/view_editor/app/src/main/res/layout/activity_orientations.xml
@@ -11,5 +11,12 @@
             android:layout_width="346dp"
             android:layout_height="372dp" android:id="@+id/drawBoussole_view"
             app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent"/>
+            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintHorizontal_bias="0.492" app:layout_constraintVertical_bias="0.896"/>
+    <com.example.view_editor.views.DrawHorizon
+            android:layout_width="405dp"
+            android:layout_height="134dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toTopOf="@+id/drawBoussole_view"
+            app:layout_constraintTop_toTopOf="parent" android:id="@+id/drawHorizon_view"/>
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
-- 
GitLab