Я хочу реализовать алгоритм обнаружения столкновений между снарядом и стеной целей, используя JavaScript. И снаряд, и цели являются кругами. У меня есть код, но я не совсем уверен, как он работает. Я был бы очень признателен, если бы кто-то смог объяснить расчеты, в частности, вычисление t (почему оно рассчитано так, как оно есть).
Код позволяет пользователю стрелять снарядом, нажимая на экран. Затем он вычисляет угол между снарядом и мышью и использует этот угол для расчета траектории снаряда. Размер траектории рассчитывается для каждой потенциальной цели, используя dx
и dy
, а также положение цели относительно снаряда. Мой вопрос касается расчета т и как этот расчет работает.
//angle is the angle (in radians) between the projectile and mouse click
var dx = Math.sin(angle);
var dy = Math.cos(angle);
var t = dx * distToBubble.x + dy * distToBubble.y; //distToBubble stores
// distance along the x an y axis between distToBubble and projectile
var ex = -t * dx + start.left
var ey = -t * dy + start.top
Я использую параметрические уравнения ex
и ey
в качестве координат столкновения между снарядом и целью