我创建一个Web服务,它的目的是模拟如何做电子电路的工作。 该项目是不是即使在阿尔法阶段呢。
我坚持该项目的一些重要的里程碑:当一个人试图一个组件的引脚连接到其它一些针 - 连接线应建。
首先,连接线只是一条直线,几乎没有任何办法去改变它。
再后来不知何故弯曲线与添加,移动和删除点,确定了线路是如何弯曲的可能性。
现在它(连接线)使用A *算法创建的。
实现不是很好呢,所以编辑* - 生成的连接线是不是一个好主意,“事业失败了很多。
为连接线的创建算法的想法是一样如下:
确定起点和终点
发现开始和结束之间的路径,其不重叠任何现有的组件”边界框
创建一组基点 -坐标表,从步骤#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)); }
问题是, 连接线可以重叠,而他们只能相交......嗯,其实还有另外一个问题:我不能想象一个如何执行连接线连接,喜欢这里,左下图:
这样的问题:我应该如何建立连接路径(使它大多接近精心设计的电路图,让我们说),我怎么能实现原理路口?