GEOintersectStraightArc |
Top Previous Next |
Schnitt einer Geraden mit einem Kreisbogen. Der Kreisbogen wird durch den Mittelpunkt und Radius bestimmt. Der betrachtete Teil verläuft gegen den Uhrzeigersinn vom startWinkel zum endWinkel. Liefert die Schnittpunkte, ggf. die Faktoren von (P2-P1) zum Erreichen der Schnittpunkte. Alle Rückwerte, die nicht benötigt werden, dürfen NULL-Zeiger erhalten. Parameter x1 (double) [IN] Koordinate auf der x-Achse vom Anfangspunkt der Geraden. y1 (double) [IN] Koordinate auf der y-Achse vom Anfangspunkt der Geraden. x2 (double) [IN] Koordinate auf der x-Achse vom Endpunkt der Geraden. y2 (double) [IN] Koordinate auf der y-Achse vom Endpunkt der Geraden. xCenter (double) [IN] Koordinate auf der x-Achse des Kreisbogenmittelpunktes. yCenter (double) [IN] Koordinate auf der y-Achse des Kreisbogenmittelpunktes. radius (double) [IN] Radius. startWinkel (double) [IN] Der Kreisbogen beginnt bei startWinkel und verläuft gegen den Uhrzeigersinn. endWinkel (double) [IN] Der Kreisbogen endet bei endWinkel. xs1 (double *) [IN/OUT] Koordinate auf der x-Achse des ersten Schnittpunktes, falls vorhanden. ys1 (double *) [IN/OUT] Koordinate auf der y-Achse des ersten Schnittpunktes, falls vorhanden. xs2 (double *) [IN/OUT] Koordinate auf der x-Achse des zweiten Schnittpunktes, falls vorhanden. ys2 (double *) [IN/OUT] Koordinate auf der y-Achse des zweiten Schnittpunktes, falls vorhanden. s1 (double *) [IN/OUT] s1 ist der Faktor, mit dem bestimmt wird, ob der erste Schnittpunkt noch auf der Geraden liegt. Gilt 0≤s1≤1, so befindet sich der Schnittpunkt noch auf der Geraden. s2 (double *) [IN/OUT] s2 ist der Faktor, mit dem bestimmt wird, ob der zweite Schnittpunkt noch auf der Geraden liegt. Gilt 0≤s2≤1, so befindet sich der Schnittpunkt noch auf der Geraden. Ergebnis (int) [OUT] Der Rückgabewert gibt die Anzahl der Schnittpunkte an: 0 keine Schnittpunkte, 1 ein Schnittpunkt 2 zwei Schnittpunkte Deklaration #include "basic.h"
int DLLENTRY GEOintersectStraightArc ( double x1, double y1, double x2, double y2, double xCenter, double yCenter, double radius, double startWinkel, double endWinkel, double * xs1, double * ys1, double * xs2, double * ys2, double * s1, double * s2 ); Verwandte Funktionen
|