Potrzebuję pomocy. Mam dwa kwadraty w przestrzeni. Chcę żeby jeden kwadrat mógł sprawdzić, czy jest obrócony w stronę drugiego kwadratu. Jednak program nie wykonuje tego czego powinien, a do tego wyskakuje DOMAIN ERROR ACOS
Oto kod:
vec1.x = sin(desc->angle*3.14/180); // pozycja x wektora szukającego kwadratu
vec1.y = cos(desc->angle*3.14/180);// pozycja y wektora szukającego kwadratu
ciach[0] = sqrt(vec1.x*vec1.x + vec1.y*vec1.y); // długoś wektora
vec1.x /= ciach[0];
vec1.y /= ciach[0];// normaliacja wektora
object = GetObject(6); // pobranie wskaźnika drugiego kwadratu
vec2.x = pos->x - object->pos->x;
vec2.y = pos->y - object->pos->y; // znalezienie odległości między kwadratami
if(vec2.x<0)vec2.x*=-1;
if(vec2.y<0)vec2.y*=-1; // jeśli ujemny zamiana na +
ciach[1] = sqrt(vec2.x*vec2.x + vec2.y*vec2.y); // długośc wektora
vec2.x /= ciach[1];
vec2.y /= ciach[1]; // normalizacja
angle = acos(vec1.x*vec2.x + vec1.y*vec2.y)/3.14 * 180;
// ^ wykonanie wzoru: arcos(x*x1 + y*y1), a następnie zamiana na zwykłę kąty
if(angle<0){
state.line.x=1; // obrót w prawo
turn=1;
}
if(angle>0){
state.line.x=-1; // obrót w lewo
turn=1;
}