Precalculating atan2
public cpp v1 · immutablevoid trig_precomp() { int ix, iy; for(ix = -800; ix < 800; ix++) for(iy = -600; iy < 600; iy++) { arctans[ix + 800][iy + 600] = int(atan2(ix, iy) * (180/M_PI)); } for(ix = 0; ix < 360; ix++) { coses[ix] = cos(ix / RADDEG); sins[ix] = sin(ix / RADDEG); }}int atan2_lt(int fromx, int fromy, int tox, int toy) { return arctans[(tox-fromx) + 800][(toy-fromy) + 600];}