qreal QLineF::angleTo(const QLineF &l) const{ if (isNull() || l.isNull()) return 0; const qreal a1 = angle(); const qreal a2 = l.angle(); const qreal delta = a2 - a1; const qreal delta_normalized = delta < 0 ? delta + 360 : delta; if (qFuzzyCompare(delta, qreal(360))) return 0; else return delta_normalized;}
delta < 0 ? delta + 360 : delta
- if (qFuzzyCompare(delta, qreal(360)))+ if (qFuzzyCompare(delta_normalized, qreal(360)))
C++ (Qt)a.angleTo(b) // возвращает ноль b.angleTo(a) // возвращает НЕ ноль
if (a.angleTo(b)) == 0) ...
if (qFuzzyIsNull(a.angleTo(b)))) ...
C++ (Qt)const qreal angleFudgeMin = 1.0e-5; // может скопирую значение из qFuzzyIsNull, но может и нет const qreal angleFudgeMax = 360 - angleFudgeMin;...qreal angle = a.angleTo(b);if (angle < angleFudgeMin || angle > angleFudgeMax) ... // считаем что вектора совпадают