如果你的图表不是疯狂的,你不应该需要一个额外的算法,但只是使用一些常识.
用矩形网格覆盖表面,然后找到一种方法连接到具有最小角度的网格线的直线框:如果框不在同一网格线上而您不关心连接的位置,则需要如果中间没有其他节点,则为一个角度.如果在路上有例如节点,则至少需要一个角度.
作为更全面的图表的第二步,添加代码不仅可以优化最小数量的边缘,还可以最小化线条的长度.如果您的图表没有疯狂,那么在应用程序响应方面应该很难注意到.
考虑到两条腿的长度并检查表面上其他物体的交叉点,以获得额外的眼睛糖果.我会使用90°的圆圈并调整圆圈的半径(显然不是上面所做的) - 对于较长的腿,半径应该更大.也许你正在使用的工具包可以在这里帮助你.