GEOarcFrom3Points |
Top Previous Next |
Berechnung von Radius und Kreismittelpunkt. Diese Funktion berechnet aus 3 Punkten, welche auf einer Kreislinie liegen, den Radius und den Mittelpunkt des Kreises. Wenn (x1,y1) und (x3,y3) identisch sind, dann wird der kleinste Vollkreis von (x1,y1) über (x2,y2) nach (x1,y1) berechnet. Parameter x1 (const DOUBLE) [IN] y1 (const DOUBLE) [IN] x2 (const DOUBLE) [IN] y2 (const DOUBLE) [IN] x3 (const DOUBLE) [IN] y3 (const DOUBLE) [IN] 3 Punkte auf der Kreislinie. Die Lage von Start-, Mittel- und Endpunkt bestimmen, welche Richtung des Kreises berechnet wird. r (DOUBLE *) [IN/OUT] Der Radius des Kreises r muss ein gültiger Zeiger auf eine Variable vom Typ DOUBLE sein, die von der Prozedur gefüllt wird, wenn die Berechnung möglich ist, d.h. wenn die drei Punkte nicht auf einer Linie liegen. Wenn der zurückgegebene Radius ein negativer Wert ist, dann verläuft der Kreis von (x1,y1) über (x2,y2) nach (x3,y3) in mathematisch negativer Richtung. xc (DOUBLE *) [IN/OUT] yc (DOUBLE *) [IN/OUT] Berechneter Mittelpunkt des Kreises. Beide Variablen müssen gültige Zeiger sein. Die Variablen werden von der Prozedur mit den Koordinaten des Kreismittelpunktes gefüllt, wenn die drei Punkte (x1,y1), (x2,y2) und (x3,y3) nicht auf einer Linie liegen. Ergebnis INT OUT 0 OK : erfolgreiche Berechnung -1 Fehler: zwei Punkte sind identisch. Deklaration #include "basic.h"
int DLLENTRY GEOarcFrom3Points ( const DOUBLE x1, const DOUBLE y1, const DOUBLE x2, const DOUBLE y2, const DOUBLE x3, const DOUBLE y3, DOUBLE * r, DOUBLE * xc, DOUBLE * yc ); Beispiel status = GEOarcFrom3Points (100.0, 50.0, 50.0, 100.0, 100.0, 150.0, &r, &xc, &yc) Die Variable status erhält den Wert 0, d.h. die Berechnung konnte durchgeführt werden. Der Mittelpunkt liegt bei (100/100) der Radius hat den Wert 50.
|