François Gautrais 8 tahun lalu
induk
melakukan
8c4a9227e2

+ 29 - 8
app/src/main/java/app/brest/testmin3d/ARActivity.java

@@ -238,20 +238,41 @@ public class ARActivity extends RendererActivity
                 //dete += "\t" + rr.getName() + "\n";
                 Object3d oo = rr.get3DModel(this);
                 CameraVo v = new CameraVo();
-
-                v.target.y=mGame.getPlayer().getOrientationY()-315;
-
+                double distCoef= (p.getDistance(mGame.getPlayer())/50)*0.8;
+                distCoef+=0.2;
+                if(distCoef>1)distCoef=1.0;
+
+                /*v.target.y=-mGame.getPlayer().getOrientationY()+315;
+                while(v.target.y<0) v.target.y+=360;
+                v.target.y%=360;
+                if(v.target.y>180) v.target.y-=360;*/
+                double theta=-(-mGame.getPlayer().getOrientationY()+135-(0.5*Math.atan(p.getDistance(mGame.getPlayer())/1.6)*180/Math.PI)%360);
+                while(theta<-180)theta+=360;
+                while(theta>180) theta-=360;
+
+                oo.position().y=-25+(float)(50*Math.sin(-theta*Math.PI/180.0));
                 //si utilisation de field et angle
                 if(p.isUseAngle())
-                    v.target.x=(float)(mGame.getPlayer().getOrientationX()-p.getAngle())+mGame.getPlayer().getOrientationZ()-270f;
+                    ;//v.target.x=(float)(mGame.getPlayer().getOrientationX()-p.getAngle())+mGame.getPlayer().getOrientationZ()-270f;
                 //si utilisation GPS pour l'angle
                 else {
-                    v.target.x = (float) (mGame.getPlayer().getOrientationX() - mGame.getPlayer().getAngleWith(p)+90)
-                            + mGame.getPlayer().getOrientationZ() ;
+                    //v.target.x =
+                    double alpha = ((float) (mGame.getPlayer().getAngleWith(p) - mGame.getPlayer().getOrientationX()))- mGame.getPlayer().getOrientationZ();
+                    //oo.position().x=-(int)(99*Math.sin(alpha)/180*Math.PI);
+                    oo.position().z=-(float)(90*distCoef*Math.cos(alpha*Math.PI/180.0));
+                    oo.position().x=-(float)(90*distCoef*Math.sin(alpha*Math.PI/180.0));
+
+
+                    //oo.position().z=0;
+                    //oo.position().z=-5;
+
+                    //while(v.target.x<0)v.target.x+=360;
+                    //if(v.target.x>180) v.target.x-=360;
 
-                    toDisplay += "Angle " + dts(mGame.getPlayer().getAngleWith(p)) + "°\nx,y = (" + dts(mGame.getPlayer().getRelXWith(p)*1000000) + " m, " + dts(mGame.getPlayer().getRelYWith(p)*1000000) +
+                    toDisplay += "Angle " + dts(alpha) + "°\nx,y = (" + dts(mGame.getPlayer().getRelXWith(p)*1000000) + " m, " + dts(mGame.getPlayer().getRelYWith(p)*1000000) +
                             " m)\nPlayer :" + dts(mGame.getPlayer().getOrientationX()) + "°\nAngleWith:" + dts(mGame.getPlayer().getAngleWith(p)) +
-                            "°\nZ " + dts(mGame.getPlayer().getOrientationZ() - 270f) + "°\nTotal " + dts(v.target.x) + "°";
+                            "°\nZ " + dts(mGame.getPlayer().getOrientationZ() - 270f) + "°\nTotal " + dts(v.target.x) + "°\nTarget x : "+dts(oo.position().x)
+                            + "°\nTarget y : "+dts(theta)+ "°\nTarget z : "+dts(oo.position().z)+"°";
                 }
 
 

+ 1 - 1
app/src/main/java/app/brest/utils/SensorsManager.java

@@ -26,7 +26,7 @@ import app.brest.utils.geometry.GPSPoint;
  */
 public class SensorsManager implements SensorEventListener, LocationListener {
 
-    public final boolean USE_GPS_STUB=true;
+    public final boolean USE_GPS_STUB=false;
     private SensorManager mSensorManager;
     private Sensor mAccelerometer;
     private Sensor mMagnetometer;

+ 5 - 1
app/src/main/java/app/brest/utils/app/brest/game/Resource.java

@@ -119,7 +119,11 @@ public class Resource implements Serializable {
             m3DModel = myParser.getParsedObject();
             m3DModel.position().x = mPosition.x; m3DModel.position().y = mPosition.y; m3DModel.position().z = mPosition.z;
             m3DModel.rotation().x = mRotation.x; m3DModel.rotation().y = mRotation.y; m3DModel.rotation().z = mRotation.z;
-            m3DModel.scale().x = mScale.x*3; m3DModel.scale().y = mScale.y*3; m3DModel.scale().z = mScale.z*3;
+            m3DModel.rotation().x+=90;
+            m3DModel.rotation().y+=-180;
+
+            //m3DModel.rotation().y=90;
+            m3DModel.scale().x = mScale.x; m3DModel.scale().y = mScale.y; m3DModel.scale().z = mScale.z;
             Log.e("MODEL", mName+" ("+m3DModel.scale().x+", "+m3DModel.scale().y+", "+m3DModel.scale().z+")");
         }
         return m3DModel;

+ 4 - 4
app/src/main/java/min3d/core/Renderer.java

@@ -420,13 +420,13 @@ public class Renderer implements GLSurfaceView.Renderer
 		// Matrix operations in modelview
 
 		_gl.glPushMatrix();
-		
+
+
 		_gl.glTranslatef($o.position().x, $o.position().y, $o.position().z);
-		
 		_gl.glRotatef($o.rotation().x, 1,0,0);
 		_gl.glRotatef($o.rotation().y, 0,1,0);
 		_gl.glRotatef($o.rotation().z, 0,0,1);
-		
+
 		_gl.glScalef($o.scale().x, $o.scale().y, $o.scale().z);
 		
 		// Draw
@@ -599,7 +599,7 @@ public class Renderer implements GLSurfaceView.Renderer
 		
 		_gl.glMatrixMode(GL10.GL_PROJECTION);
 		_gl.glLoadIdentity();
-		_gl.glFrustumf(lt,rt, btm,top, vf.zNear()*200, vf.zFar()*2000);
+		_gl.glFrustumf(lt,rt, btm,top, vf.zNear(), vf.zFar());
 		
 		vf.clearDirtyFlag();
 	}

+ 1 - 1
app/src/main/java/min3d/vos/CameraVo.java

@@ -5,7 +5,7 @@ package min3d.vos;
  */
 public class CameraVo
 {
-	public Number3d position = new Number3d(0,1000, 10000); // ... note, not 'managed'
+	public Number3d position = new Number3d(0,0, 1); // ... note, not 'managed'
 	public Number3d target = new Number3d(0,0,0);
 	public Number3d upAxis = new Number3d(0,1,0);
 	

+ 1 - 1
app/src/main/res/layout/activity_main.xml

@@ -70,7 +70,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="60dp"
                 android:maxLines="3"
-                android:lines="6"
+                android:lines="15"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:text="Small Text"
                 android:id="@+id/gps"

+ 1 - 1
app/src/main/res/raw/game_medium

@@ -139,7 +139,7 @@
 						48.095504760742188
 					],
 					"field" : 90,
-					"radius" : 10,
+					"radius" : 25,
 					"useAngle" : false
 				}
 			],

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -70,5 +70,5 @@
     <string name="pref_ringtone_silent">Silent</string>
 
     <string name="pref_title_vibrate">Vibrate</string>
-    <string name="gps_stub">-1.6635852 48.0952597;-1.6637062 48.0954137;-1.6637927 48.0955215;-1.6639079 48.0956793;-1.6641270 48.0957178;-1.6642653 48.0956139;-1.6644785 48.0957216;-1.6648474 48.0958025;-1.6649627 48.0958487;-1.6652739 48.0958718;-1.6658446 48.0954599;-1.6658503 48.0947939;-1.6649685 48.0953636;</string>
+    <string name="gps_stub">-1.6648474 48.0958025;-1.6649627 48.0958487;-1.6652739 48.0958718;-1.6658446 48.0954599;-1.6658503 48.0947939;-1.6649685 48.0953636;-1.6635852 48.0952597;-1.6637062 48.0954137;-1.6637927 48.0955215;-1.6639079 48.0956793;-1.6641270 48.0957178;-1.6642653 48.0956139;-1.6644785 48.0957216;</string>
 </resources>