> Samuel Reynolds wrote:
> >> Has anyone got the formula for working out vector movement
Part of the problem for the vector movement is implementing the arbitrary
order of thrust actions for an EFSB ship. I could write a spreadsheet that
took input values for the Main drive, port push, starboard push, reverse push,
port rotation, and starboard rotation, but the order of the actions would have
to be dictated to get the correct position and velocity for the ship. At first
glance, it would appear to be easier by hand.
Here is a representation of an Excell spreadsheet I made for vector movement,
I do not know if it works or not (yet). If someone spots an error, please let
me know.
A Start X
B Start Y
C Start Angle
D Start Velocity
E Push -P/+S If push P/S before turn
F Push -A If push aft
G Turn -P/+S If turn before thrust
H Push -P/+S If push P/S after turn & before thrust
I Push -A If push aft after turn & before thrust
J Thrust
K Push -P/+S If push P/S after thrust
L Push -A If push aft after thrust
M Turn -P/+S If turn after thrust
N Push -P/+S If push P/S after thrust and turn
O Push -A If push aft after thrust and turn
P End X =(A:A + (E:E * SIN(90)) + (F:F * SIN(360)) + (H:H *
SIN(90+(G:G*30))) + (I:I * SIN(360+(G:G*30))) + (D:D * SIN(C:C*30) +J:J
* SIN(G:G*30)) + (K:K * SIN(90+(M:M*30))) + (L:L * SIN(360+(M:M*30))) +
(N:N * SIN(90+(M:M*30))) + (O:O * SIN(360+(M:M*30))))
Q End Y =(B:B + (E:E * COS(90)) + (F:F * COS(360)) + (H:H *
COS(90+(G:G*30))) + (I:I * COS(360+(G:G*30))) + (D:D * COS(C:C*30) +J:J
* COS(G:G*30)) + (K:K * COS(90+(M:M*30))) + (L:L * COS(360+(M:M*30))) +
(N:N * COS(90+(M:M*30))) + (O:O * COS(360+(M:M*30))))
R End Angle =(SQRT( (P:P -A:A )^2 + (Q:Q -B:B )^2 ))/30
S End Velocity =ATAN( (P:P -A:A ) / (Q:Q -B:B ) )
I have placed the file on my web site (no direct link from any page) at:
I wasn't sure if I wanted to say anything (because I didn't want to put
pressure on myself, but...)
I was in the process of putting together a Perl library that would support
Full Thrust, calculating things like cinematic and vector movement (for
arbitrary orders), calculation of absolute and relative bearing, and
determination of weapons fire. Possibly even damage calculation and threshold
rolls, but I'd probably
limit that to a pseudo-random number generator and operator
intervention. (8-)
Unfortunately, an evil thing known as real life hit me on the head, and I only
got as far as implementing cinematic movement,
debugging absolute/relative bearing, and designing how the vector
system would work. So, there's no time frame for this.
However, if people would think that this would be useful, I could schedule a
higher priority for it and try to get it done. (You would also need Perl in
order to use it, which is pretty well available for every common platform out
there right now.)
J.