Oberlus wrote: ↑Mon Nov 04, 2019 3:55 pm
The Starlane Nexus still produces too many starlanes and too close to other systems (even crossing over them).
Part of the problem here is that the dot product code that tests for angles is only testing for two starlanes that share an endpoint in common. In your diagram the code never checks the angle between the two starlanes:
Ster B --> Zosma A and
Deep Space system near Ster B --> Ra A, as these starlanes do not share an endpoint in common.
The proximity of Ster B to that Deep Space system makes the Ster B --> Deep Space look quite close to Ster B --> Zosma A, but if you imagine that line from Ster B --> Deep Space extending out, you can imagine that by the time it got to Zosma A, there would be a fair distance between the two starlanes.
Simplest solution is to cut the distance and/or increase the minimum angle. What Geoff suggested here:
Geoff the Medio wrote: ↑Sun Aug 23, 2015 6:20 pm
Try adjusting
and
Code: Select all
const float MAX_LANE_DOT_PRODUCT = 0.98f;
in Condition.cpp
The cosine of the dot product is the angle between the starlanes, so currently the minimum angle allowed is arccos(.98) = 11.5 degrees. In theory this allows up to
15 31 starlanes radiating out, which seems like a lot. I'd suggest adjusting the minimum angle to something like 30 degrees (change .98 to .87), which would allow for a saner (imho) maximum of 12 starlanes.
[Edited for a computational error and some additional minor clarification.]