Я создаю веб-сервис, который нацелен на имитировать Как работают электронные схемы. project еще не находится на этапе альфа.Электронный алгоритм соединения компонентов схемы диаграммы
Я застрял с важной важной вехой проекта: когда вы пытаетесь подключить штырь одного компонента к другому штырьку - необходимо построить линию подключения.
Прежде всего, соединительная линия была просто прямой, без каких-либо изменений.
Затем он стал каким-то образом согнутый линию с возможностью добавлять, перемещать и удалять точки, которые определяются как согнутая линия.
А теперь (соединительная линия) создаются с помощью A * алгоритма.
Реализация не хорошо еще, поэтому редактирование 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)); }
проблема заключается в том, что соединительные линии могли перекрываться, в то время как они должны пересекать только ... Ну, на самом деле т вот еще одна проблема: я даже не мог себе представить, как можно было бы реализовать линии связи соединения, как здесь, в нижнем левом углу изображения:
Вопрос заключается в том:, как я должен построить путь соединения (сделать его в основном близким к хорошо продуманной электрической схеме, скажем) и как я могу реализовать схематические соединения?