Witam.
Wydaje mi się, że mam bardzo podobne zadanie dlatego nie chciałbym zakładać nowego wątku.
Moje zadanie przedstawia się tak że mam stały punkt \(\displaystyle{ S = \left(0, 0, 0 \right)}\) oraz mam wiele innych różnych punktów w przestrzeni. Punkty te zbliżają się do punktu \(\displaystyle{ S}\) z pewną prędkością \(\displaystyle{ v}\)i w pewnym momencie \(\displaystyle{ T_{i}}\) miną go w najmniejszej odległości. Moim zadaniem jest wyliczyć dla każdego punktu oddzielnie, najwcześniejszy moment \(\displaystyle{ T_{i}}\) dla którego odległość pomiędzy lecącym punktem a punktem \(\displaystyle{ S}\) będzie najmniejsza.
Załóżmy, że mamy takie dane początkowe:
punkt stały \(\displaystyle{ S = \left(0, 0, 0 \right)}\) , punkt poruszający się \(\displaystyle{ A = \left(-6, 1, 0 \right)}\) oraz prędkość tego punktu \(\displaystyle{ v = \left(1, 1, 0 \right)}\)
Zapewne prędkość \(\displaystyle{ v}\) to nic innego jak wektor kierunkowy, który należy zaczepić w punkcie \(\displaystyle{ A}\). Mam racje? Z jego pomocą kreślę prostą \(\displaystyle{ AV}\) a następnie szukam prostej prostopadłej do tej prostej przechodzącej przez punkt \(\displaystyle{ S}\). Punkt przecięcia się tych dwóch prostych (nazwijmy go punktem \(\displaystyle{ B}\)) to będzie punkt od którego odległość do punktu \(\displaystyle{ S}\) jest najmniejsza. Mając punkt \(\displaystyle{ S}\) i punkt \(\displaystyle{ B}\) wyliczę długość odcinka \(\displaystyle{ \left|BS \right|}\) i to będzie najmniejsza odległość w jakiej punkt \(\displaystyle{ A}\) minie punkt \(\displaystyle{ S}\)
A skoro tak to powinienem punkt \(\displaystyle{ A}\) oraz wektor \(\displaystyle{ \vec{v}}\) podstawić do ogólnego równania prostej, które wcześniej zaprezentował scyth:
\(\displaystyle{ \frac{x_1-a_1}{d_1}=\frac{x_2-a_2}{d_2}=\ldots =\frac{x_n-a_n}{d_n}}\) \(\displaystyle{ \rightarrow}\) \(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}}\)
Problem w tym, że po podstawieniu \(\displaystyle{ d2 = 0}\) oraz \(\displaystyle{ d3 = 0}\)
Nie wiem jak to ugryźć dalej. Tak jak pisałem wcześniej mogę mieć wiele punktów. Może być taki przypadek, że wektor kierunkowy może zawierać w sobie jedno dwa lub trzy zera i ja muszę każdy taki przypadek uwzględnić.
Z góry dziękuje za poświęcony czas.
Przestrzeń trójwymiarowa
Przestrzeń trójwymiarowa
Ostatnio zmieniony 27 wrz 2009, o 11:03 przez lukki_173, łącznie zmieniany 3 razy.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 1958
- Rejestracja: 16 kwie 2009, o 16:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 361 razy
Przestrzeń trójwymiarowa
Tak z ciekawości:
A co z przypadkiem np. \(\displaystyle{ A=(4,0,0)}\) prędkość tego punktu \(\displaystyle{ v=(1,0,0)}\), punkt stały \(\displaystyle{ S=(0,0,0)}\) ? Jak wtedy definiujesz najmniejszą odleglość pomiędzy punktem \(\displaystyle{ A}\) a punktem \(\displaystyle{ S}\) ? Po prostu \(\displaystyle{ 0}\) , a czas potrzebny na to to czas na przebycie odcinka \(\displaystyle{ AS}\) z prędkością \(\displaystyle{ v}\) ?
Poza tym w:
\(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}}\)
(czyli równaniu kierunkowym prostej) może znajdowac się liczba \(\displaystyle{ 0}\) w mianowniku-ale nie należy jej interpretowac jako dzielenia .
Jeśli jednak to tak bardzo Cie razi to wystarczy przejść na postac parametryczną:
\(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}=t}\) gdzie \(\displaystyle{ t \in \mathbb{R}}\)
skąd mamy:
\(\displaystyle{ \begin{cases} x=-6+t \\ y=1 +0\cdot t \\ z=0+0\cdot t \end{cases}}\)
Poza tym przypadek wektora kierunkowego \(\displaystyle{ (0,0,0)}\) jest mało ciekawy-zgodnie z Twoim rozumowaniem taki punkt po prostu sie nie porusza
A co z przypadkiem np. \(\displaystyle{ A=(4,0,0)}\) prędkość tego punktu \(\displaystyle{ v=(1,0,0)}\), punkt stały \(\displaystyle{ S=(0,0,0)}\) ? Jak wtedy definiujesz najmniejszą odleglość pomiędzy punktem \(\displaystyle{ A}\) a punktem \(\displaystyle{ S}\) ? Po prostu \(\displaystyle{ 0}\) , a czas potrzebny na to to czas na przebycie odcinka \(\displaystyle{ AS}\) z prędkością \(\displaystyle{ v}\) ?
Poza tym w:
\(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}}\)
(czyli równaniu kierunkowym prostej) może znajdowac się liczba \(\displaystyle{ 0}\) w mianowniku-ale nie należy jej interpretowac jako dzielenia .
Jeśli jednak to tak bardzo Cie razi to wystarczy przejść na postac parametryczną:
\(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}=t}\) gdzie \(\displaystyle{ t \in \mathbb{R}}\)
skąd mamy:
\(\displaystyle{ \begin{cases} x=-6+t \\ y=1 +0\cdot t \\ z=0+0\cdot t \end{cases}}\)
Poza tym przypadek wektora kierunkowego \(\displaystyle{ (0,0,0)}\) jest mało ciekawy-zgodnie z Twoim rozumowaniem taki punkt po prostu sie nie porusza
Przestrzeń trójwymiarowa
Cześć Kamilu:)
Dzięki za odpowiedź
ponieważ w czwartym kroku nastąpi najmniejsza odległość pomiędzy tymi dwoma punktami.
Przeszedłeś na postać parametryczna z tym że wprowadziłeś parametr \(\displaystyle{ t}\) ale ja nie wiem co ja mam podstawić za ten parametr aby obliczyć \(\displaystyle{ x,y,z}\) ..
Z góry dzięki za Twój czas, dopomóż jeszcze troszkę
Dzięki za odpowiedź
Tak, najmniejsza odległość będzie równa 0. Ty to wiesz i ja to wiem, bez zbędnych obliczeń Natomiast, ja potrzebuje wzory po to aby przełożyć je na program komputerowy bo komputer tego nie wie;) Natomiast dla przypadku, który podałeś czas będzie równy \(\displaystyle{ 4}\)Kamil_B pisze:Tak z ciekawości:
A co z przypadkiem np. \(\displaystyle{ A=(4,0,0)}\) prędkość tego punktu \(\displaystyle{ v=(1,0,0)}\), punkt stały \(\displaystyle{ S=(0,0,0)}\) ? Jak wtedy definiujesz najmniejszą odleglość pomiędzy punktem \(\displaystyle{ A}\) a punktem \(\displaystyle{ S}\) ? Po prostu \(\displaystyle{ 0}\) , a czas potrzebny na to to czas na przebycie odcinka \(\displaystyle{ AS}\) z prędkością \(\displaystyle{ v}\) ?
ponieważ w czwartym kroku nastąpi najmniejsza odległość pomiędzy tymi dwoma punktami.
Mnie to nie razi ale komputer będzie raziło bo program zwróci fatalny błąd Skoro nie należy jej interpretować jako dzielenia to jak?;)Kamil_B pisze: Poza tym w:
\(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}}\)
(czyli równaniu kierunkowym prostej) może znajdowac się liczba \(\displaystyle{ 0}\) w mianowniku-ale nie należy jej interpretowac jako dzielenia .
Jeśli jednak to tak bardzo Cie razi to wystarczy przejść na postac parametryczną:
\(\displaystyle{ \frac{x + 6}{1}=\frac{y - 1}{0}=\frac{z}{0}=t}\) gdzie \(\displaystyle{ t \in \mathbb{R}}\)
skąd mamy:
\(\displaystyle{ \begin{cases} x=-6+t \\ y=1 +0\cdot t \\ z=0+0\cdot t \end{cases}}\)
Przeszedłeś na postać parametryczna z tym że wprowadziłeś parametr \(\displaystyle{ t}\) ale ja nie wiem co ja mam podstawić za ten parametr aby obliczyć \(\displaystyle{ x,y,z}\) ..
Tak ale zrozum, że mój program dostanie kilkaset tysięcy różnych przypadków. I on ma je wszystkie obliczyć i nie patrzeć na to czy przypadek jest ciekawy czy nieKamil_B pisze: Poza tym przypadek wektora kierunkowego \(\displaystyle{ (0,0,0)}\) jest mało ciekawy-zgodnie z Twoim rozumowaniem taki punkt po prostu sie nie porusza
Z góry dzięki za Twój czas, dopomóż jeszcze troszkę
-
- Użytkownik
- Posty: 1958
- Rejestracja: 16 kwie 2009, o 16:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 361 razy
Przestrzeń trójwymiarowa
Ogólnie z postacią kierunkową prostej jest, z tego co mi wiadomo, tak że jest to po prostu równanie prostej przechodzącej przez punkt \(\displaystyle{ P=(x_{0},y_{0},z_{0})}\) o wektorze kierunkowym \(\displaystyle{ \vec{v}=(a,b,c)}\) takiej postaci:
Mimo to łatwo jest przejśc z niej do postaci parametrycznej.
Wystarczy bowiem napisać:
skąd:
\(\displaystyle{ \begin{cases} x=x_{0}+at \\ y=y_{0}+bt \\ z=z_{0}+ct \end{cases}}\)
Prosta jak wiadomo jest zbiorem pewnych punktów, zatem aby wyznaczyć \(\displaystyle{ x,y,z}\) parametr \(\displaystyle{ t}\) powinien obejmować wszystkie liczby rzeczywiste, co z oczywistych względów nie jest możliwe.
Moim zdaniem , na szczęscie, nie będzie to konieczne.
Interesuje nas bowiem prosta prostopadła do tej już znalezionej oraz ich punkt przecięcia.
Na początek znajdz równanie tej prostej prostopadłej.
Nie chce tutaj dalej nic sugerować-mogę nie mieć racji oraz nie chce odbierac calej przyjemności z rozwiązania tego problemu (choć mam pewien pomysł)
\(\displaystyle{ \frac{x-x_{0}}{a}=\frac{y-y_{0}}{b}=\frac{z-z_{0}}{c}}\)
I tyle-to po prostu wzór.Mimo to łatwo jest przejśc z niej do postaci parametrycznej.
Wystarczy bowiem napisać:
\(\displaystyle{ \frac{x-x_{0}}{a}=\frac{y-y_{0}}{b}=\frac{z-z_{0}}{c}=t}\)
gdzie \(\displaystyle{ t \in \mathbb{R}}\)skąd:
\(\displaystyle{ \begin{cases} x=x_{0}+at \\ y=y_{0}+bt \\ z=z_{0}+ct \end{cases}}\)
Prosta jak wiadomo jest zbiorem pewnych punktów, zatem aby wyznaczyć \(\displaystyle{ x,y,z}\) parametr \(\displaystyle{ t}\) powinien obejmować wszystkie liczby rzeczywiste, co z oczywistych względów nie jest możliwe.
Moim zdaniem , na szczęscie, nie będzie to konieczne.
Interesuje nas bowiem prosta prostopadła do tej już znalezionej oraz ich punkt przecięcia.
Na początek znajdz równanie tej prostej prostopadłej.
Nie chce tutaj dalej nic sugerować-mogę nie mieć racji oraz nie chce odbierac calej przyjemności z rozwiązania tego problemu (choć mam pewien pomysł)
Przestrzeń trójwymiarowa
Czesc:)
Posiedziałem troszkę i rozwiązałem ten problem
Porzućmy na chwilę tamten przykład i zmieńmy nieco dane początkowe(najpierw tym sposobem obliczyłem tamten przypadek a później chciałem sprawdzić inny).
\(\displaystyle{ A = ( \frac{5}{4} , \frac{14}{4} , \frac{4}{4} ) S = (0,0,0) \vec{v} = ( \frac{4}{4} , -\frac{6}{4} , -\frac{2}{4} )}\)
podstawiając to do prostej parametrycznej otrzymujemy:
\(\displaystyle{ \frac{x - \frac{5}{4} }{1} = \frac{y - \frac{14}{4} }{ -\frac{6}{4} } = \frac{z - 1}{ \frac{2}{4} } = t}\)
no i wyliczamy sobie \(\displaystyle{ x, y, x}\)
\(\displaystyle{ \begin{cases} \frac{x - \frac{5}{4}}{1} = t \\ \frac{y - \frac{14}{4} }{ -\frac{6}{4} } = t \\ \frac{z - 1}{ \frac{2}{4}} = t\end{cases} \rightarrow \begin{cases} x = t + \frac{5}{4} \\ y = - \frac{6}{4}t + \frac{14}{4} \\ z= \frac{2}{4}t + 1 \end{cases}}\)
A wiec mamy punkt \(\displaystyle{ B}\) o współrzędnych \(\displaystyle{ x,y,z}\) jak powyżej uzależnionych od parametru \(\displaystyle{ t}\)
Wektor \(\displaystyle{ SB}\) przechodzący przez te dwa punkty będzie opisany w ten sam sposób ponieważ \(\displaystyle{ S = (0,0,0)}\)
Aby uwolnić się od parametru \(\displaystyle{ t}\) i finalnie wyliczyć \(\displaystyle{ B}\) korzystamy z iloczynu skalarnego dwóch wektorów, które są prostopadłe gdy ich iloczyn jest równy \(\displaystyle{ 0}\).
\(\displaystyle{ \vec{v} \cdot \vec{SB} = 1 * \left(t + \frac{5}{4} \right) + - \frac{6}{4} * \left(- \frac{6}{4}t + \frac{14}{4} \right) + \frac{2}{4} * \left(\frac{2}{4}t + 1 \right)}\)
Po obliczeniu wychodzi nam, że \(\displaystyle{ t = 1}\)
Teraz musimy podstawić \(\displaystyle{ t}\) do wcześniej wyliczonych zmiennych \(\displaystyle{ x,y,z}\) i otrzymujemy:
\(\displaystyle{ x = 2.25 y = 2 z = 1.5}\) czyli punkt \(\displaystyle{ B}\) ma współrzędne \(\displaystyle{ B = (2.25, 2, 1.5)}\)
Najmniejsza odległość czyli długość odcinka \(\displaystyle{ \left|BS \right| = \sqrt{ 2.25^{2}+ 2^{2}+ 1.5^{2} } \approx 3,36340601}\)
Krok \(\displaystyle{ t_{i}}\) w którym punkt \(\displaystyle{ A}\) osiągnie tą odległość to będzie długość odcinka \(\displaystyle{ \left|AB \right|}\) podzielona na długość odcinka \(\displaystyle{ \left|AC \right|}\) gdzie punkt \(\displaystyle{ C}\) to będzie położenie punkt \(\displaystyle{ A}\) w kroku \(\displaystyle{ t_{1}}\).
\(\displaystyle{ C = A + A * \vec{v} = \left( \frac{5}{4} + \frac{5}{4} * 1, \frac{14}{4} + \frac{14}{4} * - \frac{6}{4} , 1 + 1 * -\frac{2}{4}\right) = \left( \frac{10}{4}, -\frac{7}{4}, -\frac{2}{4} \right)}\)
Odległość \(\displaystyle{ left|AC
ight| = sqrt{ left(frac{10}{4} - frac{5}{4}
ight) ^{2} + left(frac{10}{4} - frac{5}{4}
ight) ^{2}}
hmmm... z tym punktem \(\displaystyle{ C}\) to coś mi się nie zgadza
trza będzie jeszcze pomyśleć...}\)
Posiedziałem troszkę i rozwiązałem ten problem
Porzućmy na chwilę tamten przykład i zmieńmy nieco dane początkowe(najpierw tym sposobem obliczyłem tamten przypadek a później chciałem sprawdzić inny).
\(\displaystyle{ A = ( \frac{5}{4} , \frac{14}{4} , \frac{4}{4} ) S = (0,0,0) \vec{v} = ( \frac{4}{4} , -\frac{6}{4} , -\frac{2}{4} )}\)
podstawiając to do prostej parametrycznej otrzymujemy:
\(\displaystyle{ \frac{x - \frac{5}{4} }{1} = \frac{y - \frac{14}{4} }{ -\frac{6}{4} } = \frac{z - 1}{ \frac{2}{4} } = t}\)
no i wyliczamy sobie \(\displaystyle{ x, y, x}\)
\(\displaystyle{ \begin{cases} \frac{x - \frac{5}{4}}{1} = t \\ \frac{y - \frac{14}{4} }{ -\frac{6}{4} } = t \\ \frac{z - 1}{ \frac{2}{4}} = t\end{cases} \rightarrow \begin{cases} x = t + \frac{5}{4} \\ y = - \frac{6}{4}t + \frac{14}{4} \\ z= \frac{2}{4}t + 1 \end{cases}}\)
A wiec mamy punkt \(\displaystyle{ B}\) o współrzędnych \(\displaystyle{ x,y,z}\) jak powyżej uzależnionych od parametru \(\displaystyle{ t}\)
Wektor \(\displaystyle{ SB}\) przechodzący przez te dwa punkty będzie opisany w ten sam sposób ponieważ \(\displaystyle{ S = (0,0,0)}\)
Aby uwolnić się od parametru \(\displaystyle{ t}\) i finalnie wyliczyć \(\displaystyle{ B}\) korzystamy z iloczynu skalarnego dwóch wektorów, które są prostopadłe gdy ich iloczyn jest równy \(\displaystyle{ 0}\).
\(\displaystyle{ \vec{v} \cdot \vec{SB} = 1 * \left(t + \frac{5}{4} \right) + - \frac{6}{4} * \left(- \frac{6}{4}t + \frac{14}{4} \right) + \frac{2}{4} * \left(\frac{2}{4}t + 1 \right)}\)
Po obliczeniu wychodzi nam, że \(\displaystyle{ t = 1}\)
Teraz musimy podstawić \(\displaystyle{ t}\) do wcześniej wyliczonych zmiennych \(\displaystyle{ x,y,z}\) i otrzymujemy:
\(\displaystyle{ x = 2.25 y = 2 z = 1.5}\) czyli punkt \(\displaystyle{ B}\) ma współrzędne \(\displaystyle{ B = (2.25, 2, 1.5)}\)
Najmniejsza odległość czyli długość odcinka \(\displaystyle{ \left|BS \right| = \sqrt{ 2.25^{2}+ 2^{2}+ 1.5^{2} } \approx 3,36340601}\)
Krok \(\displaystyle{ t_{i}}\) w którym punkt \(\displaystyle{ A}\) osiągnie tą odległość to będzie długość odcinka \(\displaystyle{ \left|AB \right|}\) podzielona na długość odcinka \(\displaystyle{ \left|AC \right|}\) gdzie punkt \(\displaystyle{ C}\) to będzie położenie punkt \(\displaystyle{ A}\) w kroku \(\displaystyle{ t_{1}}\).
\(\displaystyle{ C = A + A * \vec{v} = \left( \frac{5}{4} + \frac{5}{4} * 1, \frac{14}{4} + \frac{14}{4} * - \frac{6}{4} , 1 + 1 * -\frac{2}{4}\right) = \left( \frac{10}{4}, -\frac{7}{4}, -\frac{2}{4} \right)}\)
Odległość \(\displaystyle{ left|AC
ight| = sqrt{ left(frac{10}{4} - frac{5}{4}
ight) ^{2} + left(frac{10}{4} - frac{5}{4}
ight) ^{2}}
hmmm... z tym punktem \(\displaystyle{ C}\) to coś mi się nie zgadza
trza będzie jeszcze pomyśleć...}\)