> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/detections-shapes/shape-analysis/line-geometry.md).

# Line Geometry

Esta función proporciona una herramienta única y flexible para una amplia gama de operaciones geométricas sobre líneas: ángulos, distancias, intersecciones, proyecciones, puntos medios, extracción de segmentos y más. Puede producir resultados numéricos, puntos, datos adicionales específicos de la operación y (opcionalmente) una imagen anotada para visualización.

## 📥 Entradas <a href="#inputs" id="inputs"></a>

* `Input Image` Imagen opcional usada para superposiciones de visualización (si desea líneas, puntos o contornos dibujados).
* `Line 1` Requerida para la mayoría de las operaciones. Acepta una línea descrita como \[(x1, y1), (x2, y2)] o una entrada de forma compatible.
* `Line 2` Requerida para operaciones de ángulo / intersección / algunas distancias. Acepta una segunda línea en el mismo formato.
* `Anchor Point` Punto opcional (x, y) usado por operaciones de proyección y punto-a-línea o cuando se suministra un contorno para intersección de formas.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

* `Output Image` Imagen anotada (si se proporciona `Input Image` y está habilitado `Show Visualization`).
* `Result` Resultado numérico de la operación seleccionada (por ejemplo ángulo en grados o distancia en píxeles).
* `Point Output` Resultado en forma de punto cuando la operación produce una coordenada (p. ej., intersección, proyección, punto medio).
* `Extra Output` Datos específicos de la operación (por ejemplo, extremos de un segmento, lista de puntos de intersección u otra información de depuración).

## 🕹️ Controles <a href="#controls" id="controls"></a>

* `Operation Type` Elija la operación geométrica a realizar (p. ej., Angle Between Lines, Intersection Point, Segment Extraction, Projection).
* `Offset (px)` Deslizador usado por operaciones de segmento / proyección para aplicar un desplazamiento en píxeles.
* `Interpolation Factor` Deslizador (0–100%) usado para operaciones basadas en interpolación (extracción de segmento, proyección a lo largo de la línea).
* `Show Visualization` Casilla para activar/desactivar el dibujo anotado en `Output Image` cuando se proporciona un `Input Image`.

## 🎯 Funcionalidades clave <a href="#features" id="features"></a>

* Bloque multiuso que cubre muchas tareas geométricas comunes.
* Comportamiento sensible al contexto: solo las salidas relevantes a la operación seleccionada contendrán datos significativos.
* Superposiciones visuales opcionales: dibuja líneas, puntos medios, intersecciones, proyecciones y segmentos directamente sobre la imagen proporcionada.
* Ayudas interactivas y sugerencias de control que facilitan seleccionar las entradas y parámetros adecuados para cada operación.

## ⚙️ Cómo se ejecuta <a href="#running-mechanism" id="running-mechanism"></a>

Al ejecutarse, el bloque lee los sockets conectados y el `Operation Type` seleccionado. Realiza el cálculo geométrico solicitado usando `Line 1`, la `Line 2` opcional y/o el `Anchor Point` opcional. Si se conecta un `Input Image` y está habilitado `Show Visualization`, el bloque devuelve una imagen anotada en `Output Image`. Los resultados numéricos y los puntos aparecen en las salidas correspondientes según la operación.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Seleccione la operación deseada en `Operation Type`.
2. Conecte los sockets requeridos: como mínimo conecte `Line 1`. Conecte `Line 2` o `Anchor Point` cuando la operación lo requiera.
3. Opcionalmente aporte un `Input Image` y habilite `Show Visualization` para obtener una imagen anotada.
4. Ajuste `Offset (px)` o `Interpolation Factor` para operaciones de extracción de segmento o proyección.
5. Ejecute el escenario; inspeccione `Result`, `Point Output` y/o `Extra Output` y vea la superposición visual en `Output Image` o mediante un bloque de visualización.

## 💡 Consejos y trucos (combinación con otros bloques) <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Para obtener líneas automáticamente a partir de contornos o bordes, combínelo con `Find Contour` o `Line Detector` para extraer datos de forma/línea y páselos a `Line Geometry`.
* Recorte una región y realice geometría enfocada con `Image ROI`, `Image ROI Select` o `Image ROI Polygon` antes de enviar la imagen a este bloque — esto reduce ruido y mejora resultados.
* Visualice las salidas en la interfaz usando `Show Image` para inspeccionar imágenes anotadas y verificar interactivamente puntos e intersecciones.
* Si necesita sobreponer resultados textuales en la imagen anotada para informes o tableros, agregue `Draw Result On Image` después de la salida visualizada.
* Para medir distancias entre características detectadas, use `Find Contour` o `Feature Detector` para localizar puntos, luego use `Line Geometry` para calcular puntos medios, distancias o proyecciones. Envíe salidas numéricas/punto a `Measure Position Distance` para desglose adicional.
* Para aislar solo las detecciones relevantes antes de cálculos geométricos, utilice `Image ROI Select` o `Check Area (Polygon)` para filtrar posiciones y formas.
* Al combinar flujos de detección y seguimiento, use `Object Detection` o `Object Detection - Custom` aguas arriba para proporcionar coordenadas y emplee `Line Geometry` para análisis como comprobación de intersecciones o cálculo de ángulos de aproximación.

(sugerencia: use las salidas del bloque como `Point Output` o `Extra Output` como entradas para otros bloques de procesamiento como `Measure Position Distance`, `Draw Point` o bloques de registro/exportación.)

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Si `Output Image` está vacío: asegúrese de que se haya conectado un `Input Image` y que `Show Visualization` esté habilitado.
* Si una operación no devuelve valor en `Result` o `Point Output`: verifique que los sockets requeridos para esa operación estén conectados (por ejemplo, `Line 2` es necesaria para ángulo/intersección).
* Si las coordenadas parecen incorrectas: verifique el formato de coordenadas y que las líneas estén provistas como \[(x1, y1), (x2, y2)]. Use bloques de vista previa como `Show Image` o `Draw Point` para inspeccionar puntos intermedios.
* Para resultados de proyección e interpolación que no coinciden: ajuste finamente `Offset (px)` y `Interpolation Factor` para adaptar la escala y las unidades esperadas.

Si necesita verificaciones visuales paso a paso, combine el bloque con `Show Image` y `Draw Point` para validar la geometría intermedia antes de usar los resultados en procesos posteriores.
