Sfera przechodząca przez 3 punkty o podanym promieniu

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
mcm
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 8 kwie 2009, o 17:00
Płeć: Mężczyzna

Sfera przechodząca przez 3 punkty o podanym promieniu

Post autor: mcm » 5 sie 2011, o 00:44

Potrzebuję znaleźć współrzędne \(\displaystyle{ \left( x_{0}, y_{0}, z_{0} \right)}\) sfery przechodzącej przez 3 punkty w przestrzeni trójwymiarowej \(\displaystyle{ \left( x_{1}, y_{1}, z_{1} \right), \left( x_{2}, y_{2}, z_{2} \right), \left( x_{3}, y_{3}, z_{3}\right)}\), której promień wynosi \(\displaystyle{ \alpha}\). Niewiadomymi są \(\displaystyle{ \left( x_{0}, y_{0}, z_{0} \right)}\).

Wpadłem na pomysł, żeby wykorzystać równanie sfery i stworzyć układ równań:
\(\displaystyle{ \left( x_{1}-x_{0} \right)^{2}+\left( y_{1}-y_{0} \right)^{2}+\left( z_{1}-z_{0} \right)^{2}=\\ \left( x_{2}-x_{0} \right)^{2}+\left( y_{2}-y_{0} \right)^{2}+\left( z_{2}-z_{0} \right)^{2}=\\ \left( x_{3}-x_{0} \right)^{2}+\left( y_{3}-y_{0} \right)^{2}+\left( z_{3}-z_{0} \right)^{2}= \alpha ^ {2}}\)
Ale nie umiem tego policzyć http://www.wolframalpha.com/ też sobie nie radzi, jaki będzie wzór ogólny na położenie takiego punktu?
Ostatnio zmieniony 5 sie 2011, o 19:34 przez lukasz1804, łącznie zmieniany 1 raz.
Powód: Temat umieszczony w złym dziale.

Awatar użytkownika
Quaerens
Użytkownik
Użytkownik
Posty: 2489
Rejestracja: 5 wrz 2007, o 13:36
Płeć: Mężczyzna
Podziękował: 439 razy
Pomógł: 181 razy

Sfera przechodząca przez 3 punkty o podanym promieniu

Post autor: Quaerens » 7 sie 2011, o 16:42

Uł takie rzeczy liczyłem dosyć dawno, ale nie wiem czy nie lepiej przejść do płaszczyzny kartezjańskiej i potem stworzyć macierz Jacobiego. Może poczytaj o pochodnych cząstkowych, promieniu wodzącym a może i jeszcze azymutalu(?).

Pozdrawiam

P.S Ten układ równań MOIM zdaniem nie na wiele Ci się zda

mcm
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 8 kwie 2009, o 17:00
Płeć: Mężczyzna

Sfera przechodząca przez 3 punkty o podanym promieniu

Post autor: mcm » 8 sie 2011, o 03:14

Zainstalowałem Mathematice, wrzuciłem powyższy układ równań i dostałem rozwiązanie... składające się z 27 tys. linii (sic!). O ile działa ono prawidłowo i nawet obliczenie go w C++ zajmuje poniżej 10ms to niestety jest to część kodu, która wykonywana jest najczęściej i musi być zoptymalizowana (już pomijając fakt że program kompiluje się 30 minut i zajmuje 3MB ).

Po co mam przechodzić do płaszczyzny kartezjańskiej? Google nie słyszało o czymś takim jak azymutal, prosiłbym o jakąś bardziej konkretną odpowiedź...-- 12 sie 2011, o 02:25 --Rozgryzłem to sam, a rozwiązanie było jak zwykle banalnie proste, podaje bo może komuś się przyda (mi było potrzebne do wyliczania czegoś co zwie się Alpha Shapes):
  • Znaleźć środek okręgu opisanego na punktach \(\displaystyle{ p_{1},p_{2},p_{3}}\) o środku w \(\displaystyle{ c}\) i promieniu \(\displaystyle{ R}\).
  • Sprawdzić czy \(\displaystyle{ R^{2} < \alpha ^{2}}\), jeśli ten warunek nie jest spełniony to nie da się stworzyć szukanej sfery.
  • Znaleźć wektor normalny do płaszczyzny przechodzącej przez 3 znane punkty - \(\displaystyle{ n=| p_{2}-p{1}| \times |p_{3}-p{1}|}\). Zwrot wektora nie ma znaczenia.
  • Wyliczamy odległość płaszczyzny od środka sfery - \(\displaystyle{ h^{2}= \alpha ^{2} - R^{2}}\).
  • Wykorzystując równanie parametryczne prostej
    \(\displaystyle{ x=c_{x} + t \cdot n_{x} \\ y=c_{y} + t \cdot n_{y} \\ z=c_{z} + t \cdot n_{z}}\)
    oraz równanie sfery \(\displaystyle{ (x-c_{x}\)^{2}+t(y-c_{y})^{2}+(z-c_{z})^{2}}\), wyliczamy, że \(\displaystyle{ t^{2}(n_{x}^2+n_{y}^2+n_{z}^2)=h^{2}}\), jeśli wcześniej znormalizujemy wektor \(\displaystyle{ n}\), tak aby jego długość wynosiła 1, to otrzymamy ostatecznie \(\displaystyle{ t= h}\).
  • Istnieją 2 takie sfery, współrzędne ich środków wynoszą:
    \(\displaystyle{ c_{1}=\vec{c}+t \cdot \vec{n} \\ c_{2}=\vec{c}-t \cdot \vec{n}}\)
Jeśli ktoś potrzebuje kodu w C++ rozwiązującego ten problem to niech pisze na priv.

Awatar użytkownika
loleklulek
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 27 cze 2011, o 18:55
Płeć: Mężczyzna
Lokalizacja: trudne czasy

Sfera przechodząca przez 3 punkty o podanym promieniu

Post autor: loleklulek » 23 sie 2011, o 22:30

Jestem ciemny z matmy. Wytłumaczy ktoś to co mówi MCM?

Crizz
Gość Specjalny
Gość Specjalny
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

Sfera przechodząca przez 3 punkty o podanym promieniu

Post autor: Crizz » 27 sie 2011, o 11:36

A czego konkretnie nie rozumiesz? Jeśli już naprawdę musisz, to zrób rysunek, powinien trochę wyjaśnić, albo spytaj o konkretny podpunkt w tym rozumowaniu.

(mcm, w sumie to przedostatni punkt w Twoim rozumowaniu jest oczywisty - wiadomo, o ile i wzdłuż jakiego kierunku się "cofnąć" od punktu \(\displaystyle{ c}\), żeby trafić w środek kuli, bez uciekania się do równania prostej. Pomysł za to bardzo ładny i chyba najprostszy z możliwych, coś jak "symetralna każdej cięciwy przechodzi przez środek okręgu", tylko w wersji 3D ).

ODPOWIEDZ