Tor ruchu pojazdu przy skręcaniu

0

Witam wszystkich serdecznie, programuję dość dużo w Visual C# i poszukuję odpowiedzi na nurtujące mnie pytanie.

Otóż mam na zaliczenie Elementów Sztucznej Inteligencji napisać symulator parkowania ciężarówki, który nauczy się programować ciężarówkę prostopadle do rampy i zaparkuje ją z dowolnego miejsca na planszy. Do ciężarówki użyję 5 prostokątów, 1 udający ciężarówkę i 4 udające koła (2 przednie skrętne) i wszystko wyrysuję w PictureBox'ie.

Problem polega na tym, że nie mogę nigdzie w necie znaleźć odpowiedzi na pytanie jak zaprogramować ruch pojazdu. Do przodu i do tyłu - banalne, ruch po wektorze prostoliniowym, ale nie wiem jak zaprogramować skręcanie, aby ciężarówka skręcała jak prawdziwa, tzn. że tak jakby przednie koła "ciągną" za sobą tylne.

Myślałem, że zrobię po prostu tak, że:
Strzałka w prawo - obrót przy użyciu transformacji macierzy i obrotu obrazka o określony kąt w prawo.
W lewo - to samo ale w lewo
W górę - ruch po wektorze do przodu
W dół - ruch po wektorze do tyłu

ale podczas skręcania byłoby to tak że auto jedzie do przodu i obraca się co nie wygląda naturalnie.

A w projekcie sterownik który nauczy się parkować nie będzie przechowywał kąta obrotu samochodu tylko kąt skrętu kół (-45 ; 45).

Dodam też że szukałem stron ludzi, którzy mże programowali jakieś wyścigi w c# / XNA z których kodu mógłbym się nauczyć jak zaprogramować tor ruchu pojazdu ale nic nie mogłem znaleźć albo nie wiem jakie słowa kluczowe wpisać w google ;/

0

Może uprościsz sprawę? Ciężarówka jako punkt, ale posiadająca kierunek i zwrot, taki wektor :) Dzięki temu będziesz mógł sprawdzać odległość od innych samochodów, równoległość parkowania do rampy, itd.

0

"A w projekcie sterownik który nauczy się parkować nie będzie przechowywał kąta obrotu samochodu tylko kąt skrętu kół (-45 ; 45)."

To mi niestety przeszkadza :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1