manual de mi pagina
11. Sagital Documentación del motor de diagramas de relaciones v2
Documentación del motor de diagramas de relaciones v2
Esta página resume cómo usar los dos archivos:
diagramas-relacionesv2.js motor principal diagramas-relaciones-autov2.js auto-render
La idea es que puedas trabajar de dos maneras:
- Modo directo: tú creas un
<canvas>y llamas una función JS. - Modo automático: tú pones un
<div>con clase ydata-config, y el script crea el canvas solo.
1. Orden de carga
Primero debe cargarse el motor y después el archivo auto.
<script src="diagramas-relacionesv2.js"></script>
<script src="diagramas-relaciones-autov2.js"></script>
Si cargas primero el archivo auto, este buscará window.DiagramasRelaciones y fallará.
2. API expuesta por el motor
El motor deja disponible el objeto:
window.DiagramasRelaciones
Y dentro de ese objeto quedan estas funciones:
crearDiagramaSagitalcrearDiagramaComposicioncrearDiagramaAutoSagitalcrearGrafoRelacion
Además, por compatibilidad legacy, las funciones también quedan exportadas globalmente.
3. API expuesta por el auto-render
El archivo automático deja disponible:
window.DiagramasRelacionesAuto
inicializar(root)redibujar(ref)autoInicializar()obtenerAPI()
redibujar(ref) acepta el id del contenedor o el elemento mismo.
4. Tipos de diagramas soportados
| Tipo | Función directa | Clase auto | data-tipo alternativo |
|---|---|---|---|
| Sagital A → B | crearDiagramaSagital |
diagrama-sagital-auto |
sagital |
| Composición A → B → C | crearDiagramaComposicion |
diagrama-composicion-auto |
composicion |
| Auto-sagital A × A | crearDiagramaAutoSagital |
diagrama-autosagital-auto |
autosagital |
| Grafo de relación | crearGrafoRelacion |
grafo-relacion-auto |
grafo o grafo-relacion |
5. Modo directo: estructura mínima
<canvas id="miCanvas" width="620" height="420"></canvas>
<script src="diagramas-relacionesv2.js"></script>
<script>
crearDiagramaSagital("miCanvas", {
nombreA: "A",
nombreB: "B",
nombreRelacion: "f",
elementosA: ["1","2","3"],
elementosB: ["2","4","6"],
pares: [["1","2"],["2","4"],["3","6"]]
});
</script>
6. Modo automático: estructura mínima
<div class="diagrama-sagital-auto"
data-config='{
"nombreA":"A",
"nombreB":"B",
"nombreRelacion":"f",
"elementosA":["1","2","3"],
"elementosB":["2","4","6"],
"pares":[["1","2"],["2","4"],["3","6"]]
}'></div>
<script src="diagramas-relacionesv2.js"></script>
<script src="diagramas-relaciones-autov2.js"></script>
El auto-render crea el canvas solo, usando anchos y altos por defecto según el tipo de diagrama.
7. Atributos del modo automático
| Atributo | Uso |
|---|---|
class |
Define el tipo, por ejemplo diagrama-sagital-auto. |
data-tipo |
Alternativa genérica si usas class="diagrama-auto". |
data-config |
Configuración JSON del diagrama. |
data-width |
Ancho del canvas. |
data-height |
Alto del canvas. |
8. Selectores que busca el auto-render
.diagrama-sagital-auto
.diagrama-composicion-auto
.diagrama-autosagital-auto
.grafo-relacion-auto
.diagrama-auto[data-tipo]
Cuando el documento termina de cargar, el script recorre esos contenedores y dibuja automáticamente.
9. Parámetros más útiles por tipo
9.1 Sagital
| Claves | nombreA, nombreB, nombreRelacion, elementosA, elementosB, pares |
|---|---|
| Opcionales | radioNodo, altoConjunto, anchoConjunto, centroAx, centroBx, yTop, colorFlecha, grosorFlecha |
| Suspensivos | mostrarSuspensivosInicioA, mostrarSuspensivosFinA, mostrarSuspensivosInicioB, mostrarSuspensivosFinB, y sus textos asociados |
9.2 Composición
| Claves | nombreA, nombreB, nombreC, paresAB, paresBC |
|---|---|
| Opcionales | nombreRelacionAB, nombreRelacionBC, nombreCompuesta, mostrarCompuesta, paresCompuestos |
| Observación | Si activas mostrarCompuesta y no das paresCompuestos, el motor intenta calcularlos. |
9.3 Auto-sagital
| Claves | nombreA o nombreConjunto, elementos, pares |
|---|---|
| Observación | Internamente reutiliza el diagrama sagital usando el mismo conjunto a ambos lados. |
9.4 Grafo
| Claves | elementos y pares |
|---|---|
| Opcionales | nombreRelacion, radioNodo, radioGrafo, curvatura, colorNodo, colorBordeNodo, colorFlecha |
| Observación | Si existe la inversa de un par, dibuja flechas curvas; si es un lazo, dibuja un bucle sobre el nodo. |
10. Ejemplos rápidos de configuración
Sagital
{
"nombreA":"A",
"nombreB":"B",
"nombreRelacion":"f",
"elementosA":["1","2","3"],
"elementosB":["2","4","6"],
"pares":[["1","2"],["2","4"],["3","6"]]
}
Composición
{
"nombreA":"A",
"nombreB":"B",
"nombreC":"C",
"nombreRelacionAB":"g",
"nombreRelacionBC":"f",
"nombreCompuesta":"f ∘ g",
"paresAB":[["1","a"],["2","b"],["3","c"]],
"paresBC":[["a","x"],["b","y"],["c","z"]],
"mostrarCompuesta":true
}
Grafo
{
"nombreRelacion":"R",
"elementos":["1","2","3"],
"pares":[["1","2"],["2","1"],["2","2"],["3","1"]]
}
11. Redibujado manual
// Redibujar por id del contenedor auto
DiagramasRelacionesAuto.redibujar("miDiagrama");
// O por referencia al elemento
const el = document.getElementById("miDiagrama");
DiagramasRelacionesAuto.redibujar(el);
12. Recomendaciones prácticas
- Usa el modo directo cuando quieras total control desde JavaScript.
- Usa el modo automático cuando quieras escribir HTML simple y dejar que el motor haga el resto.
- En
data-config, usa JSON válido: comillas dobles, listas correctas y sin comas sobrantes. - Si un diagrama no aparece, revisa primero el orden de carga de los scripts.
13. Archivo complementario
La página de ejemplos viene con diagramas ya listos para copiar, editar y probar.