2012-04-24 15 views
7

Estoy creando un servicio web que está dirigido a simular cómo funcionan los circuitos electrónicos. El project aún no está en la etapa Alpha.Algoritmo de conexión de componentes electrónicos algoritmo de conexión

Estoy atrapado con un hito importante del proyecto: cuando uno trata de conectar el pin de un componente a otro pin, se debe construir la línea de conexión.

Antes que nada, la línea de conexión era simplemente una línea recta, sin casi ninguna forma de cambiarla.

enter image description here

luego se convirtió en línea de alguna manera doblada con la posibilidad de añadir, mover y eliminar puntos, lo que determina cómo se dobla la línea.

enter image description here

Y ahora (línea de conexión) se ha creado usando el A * algoritmo.

enter image description here

La aplicación todavía no está bien, por lo que la edición de una línea de conexión -generated * no es una buena idea, porque no logra mucho.

La idea para el algoritmo de creación de línea de conexión es simplemente de la siguiente manera:

  1. determinar inicio y final puntos

  2. encontrar un camino entre inicio y final, que no se superpone a ningún componente existente 'cuadro delimitador

  3. crear un conjunto de puntos base - una lista de coordenadas, consiguió desde el paso # 2 + inicio el montón + final en la cola

  4. crear un conjunto de líneas que formarán una línea de conexión:

    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)); 
    } 
    

El problema es que las líneas de conexión podrían solaparse, al tiempo que deben cruzarse solamente ... Bueno, en realidad t aquí es otro problema: que ni siquiera podía imaginar cómo como aquí, la imagen de abajo a la izquierda se podría aplicar la conexión líneas de conexión,:

enter image description here

La pregunta es: ¿cómo debo construir la ruta de conexión (para hacerlo más cercano al diagrama de circuito bien diseñado, digamos) y ¿cómo puedo implementar uniones esquemáticas?

Respuesta

1

En primer lugar, en este momento no puedo dar soluciones integrales, pero tal vez te ayudaré:

  • cheque graphflow proyecto, su vista ampliada Javascript construye el gráfico y lo alinea con base en conexiones como veo. Eso es exactamente lo que se necesita para los circuitos (Fe GND señal será vértice con sólo una conexión, por lo que se dibuja en la región fronteriza del esquema)
  • que el enfoque debe ser modificado de alguna manera con su puesta a la red y hacer todas las conexiones ortogonales
  • sobre "ruta de conexión" es solo un elemento más y debe estar alineado como los demás. Es como un transistor, pero demasiado pequeño para ver los tres conectores