|
@@ -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)+"°";
|
|
|
}
|
|
|
|
|
|
|