Показать сообщение отдельно
Старый 08.12.2013, 21:17   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Нужна помощь

float Vector::Length(Vector a,Vector b){
    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}

float Vector::Length(){
   return sqrt((x)*(x)+(y)*(y));   
}

float Vector::Dot(Vector a,Vector b){
    return a.x*b.x+a.y*b.y;
}

float Vector::Angle(Vector a,Vector b){
    if(a.Length()*b.Length()==0)
        return 0;
        
    float ang=acos(fabs(Vector::Dot(a,b))/(a.Length()*b.Length()));
    return ang;
}
Не правильно работает Vector::Angle
если вектора одинаковые, то дает -1.#, причем это из-за acosб в чем трабла?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием