Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 07. 12. 2008 17:06

jerrycooper
Zelenáč
Příspěvky: 1
Reputace:   
 

Analytická geometrie- kružnice ze 3 bodů

Ahoj, mám fungující algoritmus na nalezení středu a poloměru kružnice ze 3 bodů. Mým problémem je, že mu moc nerozumím. Tady je algoritmus:


    double m1 = (x1+x2)/2.0;
    double n1 = (y1+y2)/2.0;

    double m2 = (x1+x3)/2.0;
    double n2 = (y1+y3)/2.0;

    //System.out.println("Pulky: "+m1+","+n1+"    "+m2+","+n2);
   
    double c1 = (x2-x1)*m1 + (y2-y1)*n1;
    double c2 = (x3-x1)*m2 + (y3-y1)*n2;

    double mx = (x2-x1)*(y3-y1)+(y2-y1)*(x1-x3);

    c_xs = (c1*(y3-y1)+c2*(y1-y2))/mx;
    c_ys = (c1*(x1-x3)+c2*(x2-x1))/mx;
   
    rs = java.lang.Math.sqrt((c_xs-x1)*(c_xs-x1)+(c_ys-y1)*(c_ys-y1));

Můj předpoklad je, že se vemou ty 3 body, udělají se 2 úsečky. Pak se vezmou osy těchto 2 úseček. Ve středu kružnice se protnou. Předpokládám, že výpočet c1 a c2 je vlastně vyjádření těch 2 os. Ale co je to mx a jaký je podklad pro dopočitání středu, to bych rád pochopil.
Něco podobného jsem našel tady, ale vysvětlené to taky není. Mohl by mě někdo vysvětlit princip těch 3 inkriminovaných řádků?

Offline

 

#2 15. 11. 2009 16:24

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: Analytická geometrie- kružnice ze 3 bodů

$A[x_1,y_1]$
$B[x_2,y_2]$
$C[x_3,y_3]$

$S_{AB}[m_1,n_1]$ je střed úsečky $AB$.
$S_{AC}[m_2,n_2]$ je střed úsečky $AC$.

$S[c_{xs},c_{ys}]$ je střed kružnice.

Vektor $S-S_{AB}$ musí být kolmý na vektor $B-A$, stejně tak vektor $S-S_{AC}$ musí být kolmý na vektor $C-A$. Máme tak dvě rovnice

$(S-S_{AB})\cdot(B-A)=0\nl (S-S_{AC})\cdot(C-A)=0$

Po úpravě

$S\cdot(B-A)=S_{AB}\cdot(B-A)\nl S\cdot(C-A)=S_{AC}\cdot(C-A)$

Výrazy na pravé straně můžeme snadno spočítat a jak je vidět, jsou to čísla $c_1$ a $c_2$ z algoritmu. Rozepíšu skalární součiny:

$c_{xs}(x_2-x_1)+c_{ys}(y_2-y_1)=c_1\nl c_{xs}(x_3-x_1)+c_{ys}(y_3-y_1)=c_2$

Spočtu si determinant soustavy (je vidět, že to je číslo $m_x$ z algoritmu) a pomocí Cramerova pravidla dostávám přesně ty výrazy pro $c_{xs}$ a $c_{ys}$ z algoritmu. Určení poloměru už snad nemusím komentovat.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson