对给定向量旋转
顺时针:
 
逆时针:

源码:
            QPointF rotateVector(const QPointF& dir, double angle, bool flag)
            {
                double rad = (angle * M_PI) / 180;
                QPointF res;
                if (flag)
                {
                    float x = static_cast<float>(dir.x() * std::cos(rad) + dir.y() * std::sin(rad));
                    float y = static_cast<float>(-dir.x() * std::sin(rad) + dir.y() * std::cos(rad));
                    res = QPointF(x, y);
                }
                else
                {
                    float x = static_cast<float>(dir.x() * std::cos(rad) - dir.y() * std::sin(rad));
                    float y = static_cast<float>(dir.x() * std::sin(rad) + dir.y() * std::cos(rad));
                    res = QPointF(x, y);
                }
                res /= normQPointF(res);
                return res;
            }



















