shy*_*cha 7 javascript algorithm electronics circuit-diagram
我正在创建一个网络服务,旨在模拟电子电路的工作方式.该项目尚未进入Alpha阶段.
我坚持项目的一个重要里程碑:当一个人尝试将一个组件的引脚连接到另一个引脚时 - 应该构建连接线.
首先,连接线只是一条直线,几乎没有任何改变它的方法.

然后它变得有点弯曲,有可能添加,移动和删除点,这决定了线是如何弯曲的.

现在它(连接线)是使用A*算法创建的.

实现还不是很好,因此编辑A*生成的连接线并不是一个好主意,因为它失败了很多.
连接线创建算法的想法如下:
确定起始和结束点
找到start和end之间的路径,它不会与任何现有组件的边界框重叠
创建一组基点 - 一个坐标列表,从步骤#2 开始 + 从堆尾处开始 + 尾部
创建一组将形成连接线的线:
for (var i = 1; i < points.length; i++) {
var p0 = points[i - 1], p1 = points[i],
line = MooChip.paper.path(Raphael.format('M%1,%2L%3,%4', p0.x, p0.y, p1.x, p1.y));
}
Run Code Online (Sandbox Code Playgroud)问题是,连接线可以重叠,而他们只能相交......嗯,其实还有另外一个问题:我不能想象一个如何执行连接线连接,喜欢这里,左下图:

问题是:我应该如何建立连接路径(使其大部分接近精心设计的电路图,让我们说)以及如何实现原理图连接?