Strona 1 z 1

Sfera przechodząca przez 3 punkty o podanym promieniu

: 5 sie 2011, o 00:44
autor: mcm
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ć też sobie nie radzi, jaki będzie wzór ogólny na położenie takiego punktu?

Sfera przechodząca przez 3 punkty o podanym promieniu

: 7 sie 2011, o 16:42
autor: Quaerens
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

Sfera przechodząca przez 3 punkty o podanym promieniu

: 8 sie 2011, o 03:14
autor: mcm
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.

Sfera przechodząca przez 3 punkty o podanym promieniu

: 23 sie 2011, o 22:30
autor: loleklulek
Jestem ciemny z matmy. Wytłumaczy ktoś to co mówi MCM?

Sfera przechodząca przez 3 punkty o podanym promieniu

: 27 sie 2011, o 11:36
autor: Crizz
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 ).