Difference between revisions of "Talk:Linear Targeting/Buggy Implementations"

From Robowiki
Jump to navigation Jump to search
m (Using <syntaxhighlight>.)
Line 1: Line 1:
 
These code snippets should be modified to not have super long lines. Also, there's no reason for the last one to be indented across the whole snippet.  --[[User:Voidious|Voidious]] 19:43, 14 November 2007 (UTC)
 
These code snippets should be modified to not have super long lines. Also, there's no reason for the last one to be indented across the whole snippet.  --[[User:Voidious|Voidious]] 19:43, 14 November 2007 (UTC)
  
<pre>
+
<syntaxhighlight>
 
double absBearing=e.getBearingRadians()+getHeadingRadians();
 
double absBearing=e.getBearingRadians()+getHeadingRadians();
  
Line 21: Line 21:
  
 
setFire(3);
 
setFire(3);
</pre>
+
</syntaxhighlight>
  
  
Line 30: Line 30:
 
Not sure if this could actually work, untested, and here it is in uncompiled code. I got this from my 3D version of my linear targeting, translated into java (I am sure I screwed up somewhere :P). Given locations of the two robots x and y, and your bullet and enemies velocities along the two axis, should get the final position of intersection in x and y coordinates. --[[User:Chase-san|Chase]] 20:55, 13 May 2009 (UTC)
 
Not sure if this could actually work, untested, and here it is in uncompiled code. I got this from my 3D version of my linear targeting, translated into java (I am sure I screwed up somewhere :P). Given locations of the two robots x and y, and your bullet and enemies velocities along the two axis, should get the final position of intersection in x and y coordinates. --[[User:Chase-san|Chase]] 20:55, 13 May 2009 (UTC)
  
<pre>
+
<syntaxhighlight>
 
class vect {
 
class vect {
 
double x;
 
double x;
Line 58: Line 58:
 
}
 
}
 
}
 
}
</pre>
+
</syntaxhighlight>
  
 
: Actually now that I actually look at the other code this is like buggy implimentation #3 and the nano targeting (simple trig). --[[User:Chase-san|Chase]] 21:07, 13 May 2009 (UTC)
 
: Actually now that I actually look at the other code this is like buggy implimentation #3 and the nano targeting (simple trig). --[[User:Chase-san|Chase]] 21:07, 13 May 2009 (UTC)

Revision as of 09:34, 1 July 2010

These code snippets should be modified to not have super long lines. Also, there's no reason for the last one to be indented across the whole snippet. --Voidious 19:43, 14 November 2007 (UTC)

		double absBearing=e.getBearingRadians()+getHeadingRadians();

		double eX=getX() + e.getDistance() * Math.sin(absBearing);

		double eY=getY() + e.getDistance() * Math.cos(absBearing);

		eXChange=(eX-oldX)*(e.getDistance()/11);

		eYChange=(eY-oldY)*(e.getDistance()/11);

		oldX=getX() + e.getDistance() * Math.sin(absBearing);

		oldY=getY() + e.getDistance() * Math.cos(absBearing);

		double enemyLocation=robocode.util.Utils.normalAbsoluteAngle(Math.atan2((eX-getX())+eXChange,(eY-getY())+eYChange));

		setTurnGunRightRadians(robocode.util.Utils.normalRelativeAngle(enemyLocation-getGunHeadingRadians()));

		setFire(3);


I'm trying to make a gun that makes use of code similar to this, but for some reason this doesn't work exactly right... Does anyone know if this is a math problem or a programming problem?--CrazyBassoonist 22:43, 9 April 2009 (UTC)

Off the top of my head.. but could this work

Not sure if this could actually work, untested, and here it is in uncompiled code. I got this from my 3D version of my linear targeting, translated into java (I am sure I screwed up somewhere :P). Given locations of the two robots x and y, and your bullet and enemies velocities along the two axis, should get the final position of intersection in x and y coordinates. --Chase 20:55, 13 May 2009 (UTC)

class vect {
	double x;
	double y;
	public vect(double nx, double ny) {
		x = nx;
		y = ny;
	}
	public double dot(vect i) {
		return i.x*x+i.y*y;
	}
	public vect sub(vect i) {
		return new vect(x-i.x,y-i.y);
	}
	public vect add(vect i) {
		return new vect(x+i.x,y+i.y);
	}
	public vect mul(double i) {
		return new vect(x*i,y*i);
	}
	public vect intercept(vect cPos, vect ePos, vector eVel, double bVel) {
		vect rPos = ePos.sub(cPos);
		double a = bVel*bVel - tVel.dot(tVel);
		double b = rPos.dot(eVel);
		double c = (b + Math.sqrt(rPos.dot(rPos)*a+b*b))/a;
		return tPos.add(tVel.mul(c));
	}
}
Actually now that I actually look at the other code this is like buggy implimentation #3 and the nano targeting (simple trig). --Chase 21:07, 13 May 2009 (UTC)