> 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/french/function-blocks/blocks-reference/detections-shapes/shape-analysis/line-geometry.md).

# Line Geometry

Ce bloc de fonction fournit un outil unique et polyvalent pour une large gamme d'opérations sur les lignes et la géométrie : angles, distances, intersections, projections, milieux, extraction de segments, et plus encore. Il peut produire des résultats numériques, des points, des données supplémentaires spécifiques à l'opération et (optionnellement) une image annotée pour visualisation.

## 📥 Girdes

* `Input Image` Image optionnelle utilisée pour les superpositions de visualisation (si vous souhaitez dessiner des lignes, points ou contours).
* `Line 1` Requise pour la plupart des opérations. Accepte une ligne décrite comme \[(x1, y1), (x2, y2)] ou une forme d'entrée compatible.
* `Line 2` Requise pour les opérations d'angle / intersection / certaines opérations de distance. Accepte une seconde ligne au même format.
* `Anchor Point` Point optionnel (x, y) utilisé pour les opérations de projection et point-vers-ligne ou lorsqu'un contour est fourni pour l'intersection de formes.

## 📤 Sorties

* `Output Image` Image annotée (si `Input Image` est fourni et que `Show Visualization` est activé).
* `Result` Résultat numérique de l'opération sélectionnée (par exemple angle en degrés ou distance en pixels).
* `Point Output` Un point résultant lorsque l'opération produit une coordonnée (p. ex. intersection, projection, milieu).
* `Extra Output` Données spécifiques à l'opération (par ex. extrémités d'un segment, liste de points d'intersection, ou autres informations de débogage).

## 🕹️ Contrôles

* `Operation Type` Choisir l'opération géométrique à effectuer (par ex. `Angle Between Lines`, `Intersection Point`, `Segment Extraction`, `Projection`).
* `Offset (px)` Curseur utilisé par les opérations de segment/projection pour appliquer un décalage en pixels.
* `Interpolation Factor` Curseur (0–100%) utilisé pour les opérations basées sur l'interpolation (extraction de segment, projection le long d'une ligne).
* `Show Visualization` Case à cocher qui active le dessin annoté dans `Output Image` lorsque `Input Image` est fourni.

## 🎯 Principales fonctionnalités

* Bloc polyvalent unique couvrant de nombreuses tâches géométriques courantes.
* Comportement contextuel : seules les sorties pertinentes pour l'opération sélectionnée contiendront des données significatives.
* Superpositions visuelles optionnelles : dessinez lignes, milieux, intersections, projections et segments directement sur l'image fournie.
* Infobulles interactives et indications de contrôle pour vous aider à choisir les bons inputs et paramètres pour chaque opération.

## ⚙️ Comment ça fonctionne

À l'exécution, le bloc lit les connexions et le `Operation Type` sélectionné. Il effectue le calcul géométrique demandé en utilisant `Line 1`, éventuellement `Line 2` et éventuellement `Anchor Point`. Si un `Input Image` est connecté et que `Show Visualization` est activé, le bloc renvoie une image annotée dans `Output Image`. Les résultats numériques et de point apparaissent sur les sorties correspondantes selon l'opération choisie.

## 📝 Instructions d'utilisation

1. Sélectionnez l'opération souhaitée dans `Operation Type`.
2. Connectez les sockets requis : au minimum connectez `Line 1`. Connectez `Line 2` ou `Anchor Point` si l'opération le demande.
3. Facultatif : fournissez un `Input Image` et activez `Show Visualization` pour obtenir une superposition annotée.
4. Ajustez `Offset (px)` ou `Interpolation Factor` lors de l'utilisation de l'extraction de segment ou des opérations de projection.
5. Exécutez le scénario ; vérifiez `Result`, `Point Output` et/ou `Extra Output` et visualisez la superposition dans `Output Image` ou avec un bloc d'affichage.

## 💡 Conseils et astuces (combiné avec d'autres blocs)

* Pour obtenir des lignes automatiquement à partir de contours ou bords, combinez avec `Find Contour` ou `Line Detector` pour extraire les formes/lignes et alimentez les résultats dans `Line Geometry`.
* Recadrez une zone et faites de la géométrie ciblée avec `Image ROI`, `Image ROI Select` ou `Image ROI Polygon` avant d'envoyer l'image à ce bloc — cela réduit le bruit et améliore les résultats.
* Visualisez les sorties dans l'interface avec `Show Image` pour inspecter les images annotées et vérifier interactivement les points et intersections.
* Si vous devez superposer des résultats textuels sur l'image annotée pour des rapports ou tableaux de bord, ajoutez `Draw Result On Image` après la sortie visualisée.
* Pour mesurer des distances entre caractéristiques détectées, utilisez `Find Contour` ou `Feature Detector` pour localiser des points, puis utilisez `Line Geometry` pour calculer milieux, distances ou projections. Alimentez les sorties numériques de point vers `Measure Position Distance` pour des analyses de distance supplémentaires.
* Pour isoler uniquement les détections pertinentes avant les calculs géométriques, utilisez `Image ROI Select` ou `Check Area (Polygon)` pour filtrer positions et formes.
* Lors de la combinaison de flux de détection et de suivi, utilisez `Object Detection` ou `Object Detection - Custom` en amont pour fournir des coordonnées, puis utilisez `Line Geometry` pour des analyses telles que vérifications d'intersection ou calcul d'angle d'approche.

Astuce : utilisez les sorties du bloc comme `Point Output` ou `Extra Output` comme entrées pour d'autres blocs de traitement tels que `Measure Position Distance`, `Draw Point` ou des blocs de journalisation/export.

## 🛠️ Dépannage

* Si `Output Image` est vide : assurez-vous qu'un `Input Image` est connecté et que `Show Visualization` est activé.
* Si une opération ne retourne aucune valeur dans `Result` ou `Point Output` : vérifiez que les sockets requis pour cette opération sont connectés (par exemple, `Line 2` est requis pour les opérations d'angle/intersection).
* Si les coordonnées semblent incorrectes : vérifiez le format des coordonnées et que les lignes sont fournies comme \[(x1, y1), (x2, y2)]. Utilisez des blocs de prévisualisation comme `Show Image` ou `Draw Point` pour inspecter les points intermédiaires.
* Pour des résultats de projection et d'interpolation qui semblent décalés, ajustez `Offset (px)` et `Interpolation Factor` pour correspondre à votre échelle et unités attendues.

Si vous avez besoin de vérifications visuelles étape par étape, combinez le bloc avec `Show Image` et `Draw Point` pour valider la géométrie intermédiaire avant d'utiliser les résultats en aval.
