Я портирую свой код из Python 3 (используя мои собственные классы для векторов, многоугольников, отрезков и т. Д., Включая различные операции, связанные с такими, как произведение перекрестных и точечных, норма, пересечение, проверка точек в многоугольнике и т. Д.) На Qt 5,7.
В Python я сделал всю математику вручную для лучшего понимания. Теперь, когда я портирую свой алгоритм на Qt C ++, я надеялся, что Qt предлагает, по крайней мере, базовые вещи (помимо перекрестного и точечного произведения), когда речь идет о векторах, таких как способность вращать вектор, переводить его и т. Д. то, что я вижу, чего-то не хватает … Многое.
Здесь QMatrix4x4
что кажется устаревшим (мне удалось найти что-то в документации только для Qt 4.8). Единственное, что я нашел на вращении, это QTransform :: Rotate (…). Однако это для вращения системы координат. Хотя математически я могу адаптировать свой алгоритм к такому способу действий, я все же предпочел бы сделать это в соответствии с соглашением о вращении вокруг произвольной точки, которая перевести на происхождение, вращаться и в конце инвертировать перевод.
Я что-то упустил или это действительно не доступно для QVector2D
(Я также проверил QVector3D
поскольку можно легко преобразовать двухмерный вектор в трехмерный (кстати, что необходимо, если вы хотите использовать функцию для перекрестного произведения: D))?
НОТА: Использование QML здесь не вариант. Все должно быть только на C ++.
Задача ещё не решена.
Других решений пока нет …