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.