У меня есть наземная настройка различных точек, некоторые из которых плоские, а другие - под углом, я пытаюсь проверить, есть ли столкновение между угловыми точками (не выровненными по оси).
У меня есть векторный массив, состоящий из двух поплавков в каждой точке — это каждая из точек земли.
Вот изображение того, как выглядит земля. http://i.imgur.com/cgEMqUv.png?1?4597
На данный момент я хочу проверить столкновения между точками 1 и 2, а затем перейти к остальным.
Я буду использовать пункты 1 и 2 в качестве примера.
g1x = 150; g2x = 980;
g2x = 500; g2y = 780;
dxdy этого dx = 350 и dy = -200.
Нормальный x этого - dy, а нормальный y - -dx
nx = -200;
ny = -350;
нормализовано, это длина между точками 1 и 2, которая равна 403,11.
nx/нормализованный = -0,496 ny/нормализованный = -0,868
//get position of object - Don't know if its supposed to be velocity or not
float vix = object->getPosition().x;
float viy = object->getPosition().y;
//calculate dot product - unsure if vix/viy are supposed to be minused
float dot = ((-vix * nrmx) + (-viy * nrmy)) * nrmx; //= -131.692
Верна ли эта информация для вычисления нормального и скалярного произведения между двумя точками.
Как я могу проверить, есть ли столкновение с этой линией, а затем отразить по нормали.
Спасибо :) любые изменения приветствуются.