Я создал с помощью OpenGL автомобильный симулятор. Для коробки столкновений автомобилей я использовал OBB. Проблема в том, что я хочу повернуть коробку столкновений. для этого я использую эту функцию:
функция с помощью минимальной и максимальной точек OBB рассчитывает все углы и поворачивает их с помощью матрицы вращения (рассчитывается с учетом угла). Затем функция определяет точки newMin и newMax и возвращает их. Итак, проблема, с которой я столкнулся, заключается в том, что функция не работает со значениями угла, отличными от 0 ° или 180 °. newMin и newMax не совпадают с автомобилем.
в основе, чтобы вычислить значения newMin и newMax, я просто умножал boxMin и boxMax на RotationMatrix, но этот метод не помог. учитывает все углы. Чтобы решить эту проблему, я сделал эту функцию:
Эта функция была лучше, потому что она работала для всех углов, кратных 90, но этого было недостаточно. Итак, я создал первую функцию, но она хуже второй, потому что она не работает для эти углы: 90° и 270°. Пожалуйста, помогите мне.
Я создал с помощью OpenGL автомобильный симулятор. Для коробки столкновений автомобилей я использовал OBB. Проблема в том, что я хочу повернуть коробку столкновений. для этого я использую эту функцию: [code]std::vector rotateCollisionBox(float angle, glm::vec3 boxMin, glm::vec3 boxMax) { std::vector rotatedVertices; glm::mat4 rotationMatrix = glm::rotate(glm::mat4(1.0f), glm::radians(angle), glm::vec3(0.0, 1.0, 0.0));
return {newMin, newMax}; } [/code] функция с помощью минимальной и максимальной точек OBB рассчитывает все углы и поворачивает их с помощью матрицы вращения (рассчитывается с учетом угла). Затем функция определяет точки newMin и newMax и возвращает их. Итак, проблема, с которой я столкнулся, заключается в том, что функция не работает со значениями угла, отличными от 0 ° или 180 °. newMin и newMax не совпадают с автомобилем. в основе, чтобы вычислить значения newMin и newMax, я просто умножал boxMin и boxMax на RotationMatrix, но этот метод не помог. учитывает все углы. Чтобы решить эту проблему, я сделал эту функцию: [code]std::vector rotateCollisionBox(float angle, glm::vec3 boxMin, glm::vec3 boxMax) { std::vector rotatedVertices; glm::mat4 rotationMatrix = glm::rotate(glm::mat4(1.0f), glm::radians(angle), glm::vec3(0.0, 1.0, 0.0));
return {newMin, newMax}; } [/code] Эта функция была лучше, потому что она работала для всех углов, кратных 90, но этого было недостаточно. Итак, я создал первую функцию, но она хуже второй, потому что она не работает для эти углы: 90° и 270°. Пожалуйста, помогите мне.
Я сделал автомобильный симулятор с помощью OpenGL. Для коробки столкновения автомобилей я использовал OBB. Проблема в том, что я хочу повернуть поле столкновений. Для этого я использую эту функцию:
std::vector rotateCollisionBox(float angle,...
Я создал с помощью OpenGL автомобильный симулятор. Для коробки столкновения автомобилей я использовал OBB. Проблема в том, что я хочу повернуть поле столкновений. для этого я использую эту функцию:
std::vector rotateCollisionBox(float angle,...
Я создал с помощью OpenGL автомобильный симулятор. Для коробки столкновения автомобилей я использовал OBB. Проблема в том, что я хочу повернуть поле столкновений. для этого я использую эту функцию:
std::vector rotateCollisionBox(float angle,...
Я сделал автомобильный симулятор с помощью OpenGL. Для коробки столкновения автомобилей я использовал OBB. Проблема в том, что я хочу повернуть поле столкновений. Для этого я использую эту функцию:
std::vector rotateCollisionBox(float angle,...
Я использую YOLOv8 OBB for object detection with OpenCV in Python. The model inference is working correctly, and I can detect objects in the input images. However, I need to crop and save images of the detected objects to an output folder.
I tried...