Wpisany przez Krzysztof Zajączkowski,
07 stycznia 2009 22:23
Dane są trzy punkty P1, P2 oraz P3, takie że wszystkie trzy nie leżą na jednej prostej (wówczas promień byłby równy nieskończoności, wyliczenie współrzędnej środka okręgu w postaci składowych XY jest niemożliwe) oraz spełniają warunek P1 != P2 oraz P1 != P3 oraz P3 != P2. Możliwe jest wyprowadzenie wzoru na środek okręgu przechodzącego przez te punkty za pomocą równania okręgu:
R – promień okręgu
X, Y – współrzędne punktu na obwodzie okręgu
Xs, Ys – współrzędne środka okręgu
Znając punkty P1, P2 oraz P3 można utworzyć trzy następujące równania:
Programy typu CAD wykorzystują tą metodę do wyznaczenia współrzędnych środka okręgu przechodzącego przez trzy wskazane przez użytkownika programu punkty. Metoda ta jest stosowana również w technikach pomiarowych wykorzystujących maszyny współrzędnościowe, w celu określenia położenia, jak i obliczenia promienia mierzonego otworu lub walca przy uwzględnieniu średnicy końcówki pomiarowej.
W dołączonym programie można zmieniać położenie poszczególnych punktów poprzez kliknięcie prawego dla punktu P1, lewego dla punktu P2 oraz środkowego dla punktu P3 przycisku myszy.
R^2 = (X - X_s)^2 + (Y - Y_s)^2
gdzie:R – promień okręgu
X, Y – współrzędne punktu na obwodzie okręgu
Xs, Ys – współrzędne środka okręgu
Znając punkty P1, P2 oraz P3 można utworzyć trzy następujące równania:
R^2 = (p_1.x - X_s)^2 + (p_1.y - Y_s)^2\\\\
R^2 = (p_2.x - X_s)^2 + (p_2.y - Y_s)^2\\\\
R^2 = (p_3.x - X_s)^2 + (p_3.y - Y_s)^2\\\\
Dwa równania, dwie niewiadome tak więc po odpowiednim przekształceniu można wyznaczyć środek okręgu.
X_s = \frac{1}{2} * \\\\
\frac{P_2.x^2 * P_3.y + P_2.y^2 * P_3.y - P_1.x^2 * P_3.y - P_1.y^2 * P_3.y}
{P_1.y * P_3.x - P_1.y * P_2.x + P_2.y * P_1.x - P_2.y * P_3.x + P_3.y * P_2.x - P_3.y * P_1.x} + \\\\\\
\frac{P_1.x^2 * P_2.y + P_1.y^2 * P_2.y - P_3.x^2 * P_2.y - P_3.y^2 * P_2.y}
{P_1.y * P_3.x - P_1.y * P_2.x + P_2.y * P_1.x - P_2.y * P_3.x + P_3.y * P_2.x - P_3.y * P_1.x} + \\\\\\
\frac{P_3.x^2 * P_1.y + P_3.y^2 * P_1.y - P_2.x^2 * P_1.y - P_2.y^2 * P_1.y}
{P_1.y * P_3.x - P_1.y * P_2.x + P_2.y * P_1.x - P_2.y * P_3.x + P_3.y * P_2.x - P_3.y * P_1.x}
Y_s = \frac{1}{2} * \\\\
\frac{P_1.x^2 * P_3.x + P_1.y^2 * P_3.x - P_2.x^2 * P_3.x - P_2.y^2 * P_3.x}
{P_1.y * P_3.x - P_1.y * P_2.x + P_2.y * P_1.x - P_2.y * P_3.x + P_3.y * P_2.x - P_3.y * P_1.x } + \\\\\\
\frac{P_3.x^2 * P_2.x + P_3.y^2 * P_2.x - P_1.x^2 * P_2.x - P_1.y^2 * P_2.x}
{P_1.y * P_3.x - P_1.y * P_2.x + P_2.y * P_1.x - P_2.y * P_3.x + P_3.y * P_2.x - P_3.y * P_1.x } + \\\\\\
\frac{P_2.x^2 * P_1.x + P_2.y^2 * P_1.x - P_3.x^2 * P_1.x - P_3.y^2 * P_1.x}
{P_1.y * P_3.x - P_1.y * P_2.x + P_2.y * P_1.x - P_2.y * P_3.x + P_3.y * P_2.x - P_3.y * P_1.x }
Promień to oczywiście odległość od wyznaczonego środka do dowolnego z punktów.
R = \sqrt{(P_1.x - X_s)^2 + (P_1.y - Y_s)^2}
Programy typu CAD wykorzystują tą metodę do wyznaczenia współrzędnych środka okręgu przechodzącego przez trzy wskazane przez użytkownika programu punkty. Metoda ta jest stosowana również w technikach pomiarowych wykorzystujących maszyny współrzędnościowe, w celu określenia położenia, jak i obliczenia promienia mierzonego otworu lub walca przy uwzględnieniu średnicy końcówki pomiarowej.
W dołączonym programie można zmieniać położenie poszczególnych punktów poprzez kliknięcie prawego dla punktu P1, lewego dla punktu P2 oraz środkowego dla punktu P3 przycisku myszy.
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Krzysztof Zajączkowski | C/C++ | .cpp | .cpp | ***** / 6 |
Poprawiony: 27 sierpnia 2012 20:47
Moje wyprowadzenie wzoru na współrzędne środka okręgu przechodzącego przez 3 dane punkty:
http://imageshack.us/photo/my-images/849/okrgprzechodzcyprzez3pu.png/
http://imageshack.us/photo/my-images/189/okrgprzechodzcyprzez3pu.png/
Ostateczne WZORY na współrzędne środka okręgu przechodzącego przez 3 dane punkty:
http://imageshack.us/photo/my-images/141/okrgprzechodzcyprzez3pu.png/
wzory te sprawdziłem i działają bezbłędnie w excelu:) pozdrawiam