
I've been working on a new starlanes generation algorithm to resolve some issues with the current one. One such issue is stars that are really near a starlane that does not connect to them, such as the orange ones in the image above. This is a problem because in some cases, the star looks like it is on the lane, when it is actually not.
There are two seemingly simple ways to deal with this, afaik. 1) Remove the offending star or starlane, and 2) connect starlane to the star(s) that are near it, by splitting the starlane into two or more smaller starlanes with the offending star(s) in the middle.
(1) is obviously simpler to impliment, but has the obvious drawback that you need to remove stars or starlanes that you'd previously generated. This isn't as bad as it might seem though, as the number of offending stars / lanes is generally quite low.
(2) can be quite complicated to impliment. After finding the offending starlanes (which (1) also has to do), you then have to order them along the starlane, and create a bunch of new starlanes and fix up the endpoint(s) of the old one.
It's also possible that moving or making new starlanes that don't quite align with the old one might make other stars now too close to a starlane, requiring furthur checks and modification steps. This probably isn't that big a deal though, as stars need to be pretty close to a lane to be too close, so the amount of shifting is unlikely to make other stars too close.
Additionally, unlike the image above, a star that's too close to a lane might already have a whole bunch of starlanes connected two it. This creates two problems. First, the star might end up with too many starlanes connected to it after being "spliced" into the nearby starlane. What qualifies as "too many starlanes" might vary, but if you've had a first step that sets how many starlanes you want everywhere, and then go adding more for some stars, things might get messed up. Second, the new starlane connection might be too close in angle to one of the one that were already on the offending star. I've made an effort to prevent too-close angular starlanes from a star, as it makes things hard to see, and not as nice looking when you do. (The angle issue also applies to the original end stars of the starlane, if the connections are moved.)
Moving the offending star away from the starlane isn't a good option, generally, but could be done, I suppose. (Note that this isn't the same as removing the offending star completely as in (1) above)
Anyway, my question is: what are people's thoughts on how best to deal with this sort of situation?