Tworzę serwis internetowy, który ma na celu symulować jak działają układy elektroniczne. project nie jest jeszcze na etapie Alpha.Elektroniczny algorytm łączenia komponentów diagramu
Utknąłem z ważnym kamieniem milowym projektu: kiedy próbuje się podłączyć pin jednego komponentu do innego pinezki - należy zbudować linię łączącą.
Po pierwsze, linia połączenia była po prostu linią prostą, bez prawie żadnego sposobu na jej zmianę.
Wtedy stało się jakoś wygięta linia z możliwością dodać, przenoszenie i usuwanie punktów, które wyznaczały jak linia jest wygięta.
A teraz (linia połączenia) jest tworzony za pomocą algorytmu * A.
Realizacja nie jest jeszcze dobrze, więc edytowania * -generated linię połączenia nie jest dobrym pomysłem, bo to nie dużo.
Pomysł na algorytm tworzenia linii połączenie jest po prostu w następujący sposób:
określić rozpoczęcia i koniec punktów
znaleźć ścieżkę między początku i koniec, która nie nakłada się na żadną istniejącą część składową "ramka ograniczająca"
utworzyć zestaw punktów bazowych - wykaz współrzędnych, dostał od kroku # 2 + rozpoczęcia na stercie + koniec w ogonie
utworzyć zestaw linii, które będą stanowić linia gra:
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)); }
problemem jest to, że przewody przyłączeniowe mogłyby nakładać, gdy muszą się przecinać tylko ... No, rzeczywiście t tu jest inny problem: nie mogłem sobie nawet wyobrazić, jak można realizować połączenia przewodów przyłączeniowych, jak tutaj, obraz bottom-left:
Pytanie brzmi: jak należy budować ścieżkę połączenia (aby zrobić to w większości blisko dobrze zaprojektowanego schematu obwodu, powiedzmy) i jak mogę zaimplementować schematyczne skrzyżowania?