Равенство векторов
Равенство векторов
В геометрии два вектора считаются равными, если они указывают в одном и том же направлении и имеют одинаковую длину. В алгебре говорят, что векторы равны, если у них одинаковое количество измерений и их соответствующие компоненты равны. Например, (ux,uy, uz) = (vx, vy, vz) если ux = vx, uy = vy и uz = vz.
В коде мы можем проверить равны ли два вектора, используя перегруженный оператор равенства:
D3DXVECTOR u(1.0f, 0.0f, 1.0f); D3DXVECTOR v(0.0f, 1.0f, 0.0f); if( u == v ) return true;
Аналогичным образом, можно убедиться, что два вектора не равны, используя перегруженный оператор неравенства:
if( u != v ) return true;
ПРИМЕЧАНИЕ
const float EPSILON = 0.001f; bool Equals(float lhs, float rhs) { // если lhs == rhs разность должна быть равна нулю return fabs(lhs - rhs) < EPSILON ? true : false; }
Об этом не надо беспокоиться, работая с классом D3DXVECTOR, поскольку перегруженные операции сравнения все сделают за нас, но очень важно знать об этой особенности сравнения чисел с плавающей точкой.