Sto creando un servizio web che è diretto a simulare come funzionano i circuiti elettronici. Lo project non è ancora nella fase Alpha.Algoritmo di collegamento dei componenti elettronici diagramma di flusso
Sono bloccato con alcune pietre miliari importanti del progetto: quando si tenta di collegare il pin di un componente a un altro pin, è necessario creare la linea di connessione.
Prima di tutto, la linea di connessione era solo una linea retta, senza quasi alcuno modo di cambiarla.
poi è diventato in qualche modo piegato linea con la possibilità di aggiungere, spostare e cancellare i punti, che ha determinato come la linea è piegato.
E ora (linea di connessione) viene creata usando l'A * algoritmo.
L'implementazione non è ben ancora, quindi la modifica di una linea di collegamento * -Generata non è una buona idea, perche' non riesce molto.
L'idea per l'algoritmo di creazione della linea di collegamento è proprio come segue:
determinare inizio e fine punti
trovare un percorso tra inizio e fine, che non si sovrappone al riquadro di delimitazione di qualsiasi componente esistente
creare un insieme di punti base - un elenco di coordinate, ottenuto dal passo # 2 + inizio il mucchio + fine in coda
creare un insieme di linee che formeranno una linea di collegamento:
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)); }
Il problema è che linee di collegamento potrebbero sovrapporsi, mentre loro devono intersecarsi solo ... Beh, in realtà t qui è un altro problema: non ho potuto nemmeno immaginare quanto come qui, l'immagine in basso a sinistra si potrebbe implementare il collegamento linee di collegamento,:
La domanda è: come devo costruire il percorso di connessione (per renderlo per lo più vicino allo schema circuitale ben progettato, diciamo) e come posso implementare giunzioni schematiche?