Pracuję nad sztuczną inteligencją ruchu, w której nie ma przeszkód, a ruch jest ograniczony do płaszczyzny XY. Obliczam dwa wektory, v , kierunek skierowania statku 1 oraz w , wektor wskazujący od pozycji statku 1 do statku 2.
Następnie obliczam kąt między tymi dwoma wektorami za pomocą wzoru
arccos((v · w) / (|v| · |w|))
Problem, który mam, polega na tym, że arccos
zwraca tylko wartości od 0 ° do 180 °. To uniemożliwia ustalenie, czy powinienem skręcić w lewo, czy w prawo, aby stawić czoła drugiemu statkowi.
Czy jest na to lepszy sposób?
Mathf.DeltaAngle()
.