Mam taki problem, otóż mam zbiór danych w postaci punktów w układzie współrzędnych sferycznych - lokalnym (nie jest to wierny układ geograficzny ani matematyczny) i próbuję przekształcić go na układ kartezjański, tak aby podglądnąć w dowolnym programie do rysowania figurę jaka powinna powstać z tych punktów.
Punkty zostały zebrane przez miernik laserowy z obrotową głowicą (zatem są lekko zaszumione). Głowica obraca się w 2 osiach, nazwanych \(\displaystyle{ \varphi}\), \(\displaystyle{ \theta}\) oraz odległość r.
Gdzie
\(\displaystyle{ \varphi}\) - oznacza obrót lewo-prawo (-90 do 90)
\(\displaystyle{ \theta}\) - oznacza obrót góra-dół (-90 do 90)
r - odległość
Widać to na poniższym rysunku
Próbowałem przekonwertować dane na układ kartezjański (xyz) wg poniższych wzorów:
\(\displaystyle{ x = r \cdot cos(\theta + \frac{\pi}{2}) \cdot cos(\varphi)}\)
\(\displaystyle{ y = r \cdot cos(\theta + \frac{l\pi}{2}) \cdot sin(\varphi)}\)
\(\displaystyle{ z = r \cdot sin(\theta + \frac{\pi}{2})}\)
Niestety przy każdej próbie coś mi się rozjeżdża i obraz jaki uzyskuję jest niepoprawny.
Dla przykładowego zbioru:
Kod: Zaznacz cały
http://speedy.sh/ThRPG/basen-4.txt
układ danych: \(\displaystyle{ \varphi \theta r}\))
Uzyskuję taki obraz (widziany z góry):
Spodziewanym rezultatem powinna być wanna prostopadłościenna (z odkrytą górną częścią). Ten pierwszy łuk (w miejscu gdzie dane jeszcze się nie rozjechały) to tzw. efekt soczewki, wynikający z tego, iż miernik był blisko ścianki, natomiast zastanawia mnie 2 koniec, gdzie dane układają się w sposób całkowicie nieoczekiwany.
Przy tej ilości punktów ciężko mi ustalić, co powoduje defekt, czy zły sposób przeliczania danych, czy też po prostu miernik tak zmierzył, dlatego proszę o weryfikację toku myślenia oraz rady.
Z góry dziękuję.