Strona 1 z 1

Gra Colobot pozycja strzelecka

: 11 cze 2020, o 16:01
autor: Arowesk
Witam,
Zacząłem grać w grę z tytułu tematu i napotkałem problem polegający na znalezieniu punktu w przestrzeni.

Gra głównie polega na sterowaniu robotami ręcznie lub pisaniu programów w języku bardzo zbliżonym do c++, dostępne są w nim potęgi pierwiastki oraz funkcje sin,cos,itd.

Mam do dyspozycji programowalnego robota który może się swobodnie przemieszczać. Za pomocą komend mogę określić jego położenie R(x,y,z) jak i położenie mojego przeciwnika pająka P(x,y,z) którego muszę zniszczyć, inną komendą jestem w stanie zmierzyć odległość między dowolnymi dwoma punktami. Aby wykonać misję muszę się zbliżyć na bezpieczną odległość powiedzmy 5m od celu.

szukam funkcji która na podstawie dwóch danych punktów P oraz R jest w stanie wypluć trzeci znajdujący się 5m od punktu P oraz znajdujący się na linii PR.

Program musi działać bez względu na położenie robota i pająka więc stałe wartości odpadają.

Pozdrawiam

Re: Gra Colobot pozycja strzelecka

: 11 cze 2020, o 18:45
autor: a4karo
NApisz równanie prostej łączącej te dwa punkty i znajdź na niej punkt odległy o `5` od pajaka

Re: Gra Colobot pozycja strzelecka

: 12 cze 2020, o 20:52
autor: Dasio11
Arowesk pisze: 11 cze 2020, o 16:01szukam funkcji która na podstawie dwóch danych punktów P oraz R jest w stanie wypluć trzeci znajdujący się 5m od punktu P oraz znajdujący się na linii PR.
Są dwa takie punkty: \(\displaystyle{ p \pm \frac{5}{\|p-r\|} (p-r)}\), gdzie \(\displaystyle{ \| p \|}\) to odległość punktu \(\displaystyle{ p}\) od zera.

W postaci bez notacji wektorowej:

\(\displaystyle{ \left( x_p \pm \frac{5}{d} \cdot (x_p-x_r), y_p \pm \frac{5}{d} \cdot (y_p-y_r), z_p \pm \frac{5}{d} \cdot (z_p-z_r) \right)}\)

gdzie \(\displaystyle{ P = (p_x, p_y, p_z), R = (r_x, r_y, r_z)}\) i \(\displaystyle{ d = \sqrt{(x_p-x_r)^2 + (y_p-y_r)^2 + (z_p-z_r)^2}}\).