Мы пытаемся, чтобы получить значение соз между V и U, но мы получаем результаты намного выше, чем 1 или меньше 0Как рассчитать угол между двумя векторами?
Где:
vx = in.nextInt(); // x speed of your pod
vy = in.nextInt(); // y speed of your pod
int ux = nextCheckPointIdX - x;
int uy = nextCheckPointIdY - y;
Вот формула:
double cos = (vx*ux + vy*uy)/(Math.sqrt(Math.pow(vx, 2) + Math.pow(vy, 2)) + Math.sqrt(Math.pow(ux, 2) + Math.pow(uy, 2)));
Вы обнаружили ошибки в предыдущей строке?
Скалярное произведение двух векторов на косинус угла между раз * продукт * их длины – harold
@harold Я редактировал вопрос, мы не хотим, чтобы продукт –
Вы хотите сделать продукт. Как я уже сказал, точечным произведением двух векторов является 'cos (angle) * | A | * | B | ', поэтому, чтобы извлечь часть' cos (angle) ', которую вы должны разделить на произведение длин. В этой формуле нет сумм длин, на самом деле это редко бывает вообще. – harold