FC_CommonPointOfTwoLines2D - Allgemeine Informationen
Typ |
Funktion |
Verfügbar ab: |
V1.0.3.0 |
Versionen: |
Aktuelle Version |
Berechnung des Schnittpunkts zweier Geraden im 2-dimensionalen Raum.
Die Funktion berechnet die Schnittpunkte zweier Geraden im 2-dimensionalen Raum. Hierbei werden auch die Fälle paralleler oder zusammenfallender Geraden berücksichtigt. Für die Geraden wird die folgende Parameterdarstellung verwendet:
Line1(Parameter1) = i_stLine1.stPoint1 + Parameter1 * (i_stLine1.stPoint2 - i_stLine1.stPoint1)
Line2(Parameter2) = i_stLine2.stPoint1 + Parameter2 * (i_stLine2.stPoint2 - i_stLine2.stPoint1)
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
POU-spezifischer, diagnosebezogener Ausgang. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_diNumberOfCommonPoints |
DINT |
Anzahl der Schnittpunkte Mögliche Werte: 0: Es gibt keinen Schnittpunkt, die Geraden sind parallel und fallen nicht zusammen. 1: Es gibt genau einen Schnittpunkt. 99: Die Geraden fallen zusammen, d. h. es gibt unendlich viele Schnittpunkte. |
q_stCommonPoint |
Schnittpunkt der Geraden, falls q_diNumberOfCommonPoints = 1. |
|
q_lrParameterLine1 |
LREAL |
Parameter des Schnittpunkts q_stCommonPoint in der obigen Parameterdarstellung der Geraden 1 (nur wenn q_diNumberOfCommonPoints = 1) |
q_lrParameterLine2 |
LREAL |
Parameter des Schnittpunkts q_stCommonPoint in der obigen Parameterdarstellung der Geraden 2 (nur wenn q_diNumberOfCommonPoints = 1) |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
0 |
OK |
|
InputParameterInvalid |
32 |
Die Definition von Line1 ist nicht korrekt. |
|
InputParameterInvalid |
33 |
Die Definition von Line2 ist nicht korrekt. |
Enumerationsname: |
DefinitionLine1 |
Enumerationswert: |
32 |
Beschreibung: |
Die Definition von Line1 ist nicht korrekt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_stLine1.stPoint1 und i_stLine1.stPoint2 wurde der gleiche Punkt übergeben. |
Die Punkte stPoint1 und stPoint2, mit denen die Gerade i_stLine1 definiert wird, müssen mindestens Gc_lrZeroTolerance voneinander entfernt sein. |
Enumerationsname: |
DefinitionLine2 |
Enumerationswert: |
33 |
Beschreibung: |
Die Definition von Line2 ist nicht korrekt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_stLine2.stPoint1 und i_stLine2.stPoint2 wurde der gleiche Punkt übergeben. |
Die Punkte stPoint1 und stPoint2, mit denen die Gerade i_stLine2 definiert wird, müssen mindestens Gc_lrZeroTolerance voneinander entfernt sein. |
Enumerationsname: |
Ok |
Enumerationswert: |
0 |
Beschreibung: |
OK |
Der Schnittpunkt wurde erfolgreich berechnet.