Hi there, I've just picked up the engine and have been tooling about with it for a bit. I'm a bit confused by the following code snipped though (c#):
var normLinVel = v.LinearVelocity.Normalized() * 100f;
var arcLimit = Mathf.Deg2Rad(20.0f);
var a = pos + normLinVel.Rotated(arcLimit);
var b = pos + normLinVel.Rotated(-arcLimit);
var ngA = a.AngleTo(normLinVel);
var ngB = b.AngleTo(normLinVel);
var c = pos + normLinVel.Rotated(ngA);
var d = pos + normLinVel.Rotated(ngB);
DrawLine(pos, a, _colors["BLACK"], 1.5f);
DrawLine(pos, b, _colors["BLACK"], 1.5f);
DrawLine(pos, c, _colors["GREEN"], 1.5f);
DrawLine(pos, d, _colors["GREEN"], 1.5f);
The expectation is that I take the linear velocity of a Body and draw two lines (a and b) at angles -20 degrees and + 20 degrees, scaled to 100px relative to the velocity.
This works as expected, which is great.
The next thing i want to do (this is just to prove my understanding of the engine) is to find the angles between the velocity and the vectors which I just made. I then want to draw two more lines over the lines which I've already drawn (b and c).
The expectation is that the angles returned from AngleTo should be identical to the variable arcLimit, however this isn't the case. It appears that I don't quite understand what the function is doing and I believe it's quite an important one to grock.
I've attached an image of the output of this. a and b are in black, linear velocity is pink and c and d are in green.

If someone can show me where i'm going wrong i'd be really grateful :D
Many thanks!