Cześć,
zajmuję się programem, który na podstawie znajomości położenia trzech czujników oraz odległości od punktu (użytkownika) wyznaczy lokalizację użytkownika. Matematycznie zauważyłem, że lokalizacja użytkownika, to miejsce przecięcia trzech okręgów, gdzie środek okręgu każdego okręgu to lokalizacja czujnika, a promień to jego pobrana odległość od użytkownika. Dlatego mam do Was dwa pytania:
1. Czy moje rozwiązanie jest poprawne i czy da się ten problem rozwiązać lepiej ?
2. Co w przypadku, gdy wyznaczona odległość (promień) będzie zakłamana ? Czy uzyskany wyniki będzie zbliżony do prawdziwej lokalizacji lub czy rozwiązanie w takiej formie nie będzie miało sensu.
Dane początkowe:
\(\displaystyle{ \begin{cases} (A_{x}, A_{y},R_{1})\\ (B_{x}, B_{y},R_{2}) \\(C_{x}, C_{y},R_{3})\end{cases}}\)
Trzy równania okręgu:
\(\displaystyle{ \begin{cases} (x - A_{x})^{2} + (y - A_{y})^{2} = (R_{1})^{2} \\(x - B_{x})^{2} + (y - B_{y})^{2} = (R_{2})^{2} \\(x - C_{x})^{2} + (y - C_{y})^{2} = (R_{3})^{2}
\end{cases}}\)
Następnie, mnożę ostatnie równanie razy (-2), tak żeby po zsumowaniu wszystkich równań stracić zmienne w kwadracie.
Rozwiązaniem jest funkcja liniowa \(\displaystyle{ y = ( \frac{2*A_{x} + 2*B_{x} - 4*C_{x}}{4*C_{x} - 2*A_{x} - 2*B_{x}})x + \frac{R_{1}^{2} + R_{2}^{2} -2*R_{3}^{2} - A_{x}^{2} -B_{x}^{2} +2*C_{x}^{2} -A_{y}^{2} -B_{y}^{2} +2*C_{y}^{2}}{-2*A_{y}^{2}-2*B_{y}^{2} +4*C_{y}^{2}}}\).
Następnie wstawiam takie równanie do każdego z trzech równań i z uzyskanych funkcji kwadratowych wyliczam miejsca zerowe, podstawiam, do funkcji liniowej i miejsce przecięcia to taka para (X,Y), która powtarza się dla każdego z trzech równań kwadratowych.
Wiem, że to wszystko trochę zagmatwane, nie proszę też nikogo o podanie mi rozwiązania, za wszystkie cenne porady lub poprawki z góry dziękuje.
Miejsce przecięcia trzech okręgów.
- kropka+
- Użytkownik
- Posty: 4389
- Rejestracja: 16 wrz 2010, o 14:54
- Płeć: Kobieta
- Lokalizacja: Łódź
- Podziękował: 1 raz
- Pomógł: 787 razy
Miejsce przecięcia trzech okręgów.
Prościej będzie policzyć \(\displaystyle{ x}\) i \(\displaystyle{ y}\) z dwóch równań (jedno lub dwa rozwiązania), a potem sprawdzić, które z nich spełnia trzecie równanie.Gdy promienie są zakłamane, to okręgi nie będą się przecinać w jednym punkcie (mogą się nawet wcale nie przecinać).