Я работаю над искусственным интеллектом, в котором нет препятствий и движение ограничено плоскостью XY. Я рассчитываю два вектора, v , направление движения корабля 1 и w , вектор, указывающий от положения корабля 1 к кораблю 2.
Затем я рассчитываю угол между этими двумя векторами, используя формулу
arccos((v · w) / (|v| · |w|))
У меня проблема в том, что arccos
возвращает значения только между 0 ° и 180 °. Это делает невозможным определить, должен ли я повернуть налево или направо, чтобы повернуться лицом к другому кораблю.
Есть лучший способ сделать это?
Mathf.DeltaAngle()
.