Wpisany przez Krzysztof Zajączkowski
poniedziałek, 05 stycznia 2009 20:29
Niech istnieją dwa wektory określające linię rzutowania V1 i V2 oraz rzutowany punkt V3. Konieczne jest następujące założenie: V1 różne od V2. Istnieje możliwość obliczenia wektora V4 będącego prostopadłym rzutem wektora V3 na prostą określoną wektorami V1 i V2 poprzez obliczenia współczynnika u w następujący sposób:

powyższy zapis jest rozszerzeniem wzoru wykorzystującego iloczyn skalarny:

Współczynnik u jest stosunkiem długości wektora otrzymanego z różnicy wektorów V4 - V1 do długości wektora otrzymanego z różnicy wektorów V2 - V1. Przedstawiono to na rysunku poniżej:

Znając więc wartość współczynnika u można obliczyć w współrzędne wektora V4 korzystając z operacji skalowania wektora V2 - V1 przez wyliczony współczynnik u:
V4 = V1 + (V2 - V1) * u
gdzie:
(V1 - V2) * u = V1 - V4
Zastosowanie prostopadłego rzutowania na linię znajdziemy chociażby w nawigacji GPS. Punkt obliczony na podstawie danych z satelit przeważnie nie znajduje się dokładnie na drodze wykreślonej na mapie. Częściowo wynika to z niedokładności systemu GPS, częściowo z niedokładności map. W takim przypadku musimy nasz punkt "przenieść" wirtualnie na najbliższą drogę. Żeby punkt ten był jak najbliżej miejsca wskazywanego przez system GPS, należy zrzutować go prostopadle na drogę.

powyższy zapis jest rozszerzeniem wzoru wykorzystującego iloczyn skalarny:

Współczynnik u jest stosunkiem długości wektora otrzymanego z różnicy wektorów V4 - V1 do długości wektora otrzymanego z różnicy wektorów V2 - V1. Przedstawiono to na rysunku poniżej:

Znając więc wartość współczynnika u można obliczyć w współrzędne wektora V4 korzystając z operacji skalowania wektora V2 - V1 przez wyliczony współczynnik u:
Zastosowanie prostopadłego rzutowania na linię znajdziemy chociażby w nawigacji GPS. Punkt obliczony na podstawie danych z satelit przeważnie nie znajduje się dokładnie na drodze wykreślonej na mapie. Częściowo wynika to z niedokładności systemu GPS, częściowo z niedokładności map. W takim przypadku musimy nasz punkt "przenieść" wirtualnie na najbliższą drogę. Żeby punkt ten był jak najbliżej miejsca wskazywanego przez system GPS, należy zrzutować go prostopadle na drogę.
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| Krzysztof Zajączkowski | C/C++ | MS Visual Studio .net | ![]() | ![]() |
![]() ![]() ![]() ![]() / 1 |
Poprawiony: wtorek, 25 maja 2010 22:33



/ 1
Komentarze