10.12.2013, 11:14
|
#4
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Нужна помощь
Сообщение от RegIon
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б в чем трабла?
|
(a.Length()*b.Length()) не должно быть нулем
|
(Offline)
|
|