как вывести значение glm::vec2 и glm::mat2

101
16 марта 2021, 21:20

попробовал вывести (что там лежит):

glm::vec2 a(1.0f);       // 1.0f, 1.0f
printf("a = %d \n", a);
glm::vec2 b = a +1.0f;   // 2.0f, 2.0f
printf("b = %d \n", b);
float len = glm::length(a);
printf("len (a) = %f, \n", len);
float len1 = glm::length(b);
printf("len (b) = %f, \n", len1);
float dist = glm::distance(a,b);
printf("dist = %f, \n", dist);

Вот что выводит :

Как вывести вектор ???

           glm::mat2 m(0,1,2,3); // даже не понял как вывести 

Как вывести матрицу ???

Answer 1

Спасибо @vegorov-у он дал мне ответ.

Вот заголовочный файл

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
INCLUDEPATH += $$PWD/usr/include/glm  \ # если не заработает попробуй полный путь $$PWD/../../../../../usr/include/glm

вот полный код с выводом :

#define GLM_FORSE_RADIANS   // углы будут задоваться в радианах
#define GLM_SWIZZLE
#include <glm/vec2.hpp>
#include <glm/matrix.hpp>
#include <glm/mat2x2.hpp>
#include <glm/geometric.hpp>
#include <iostream>
using namespace std;
int main()
{
    glm::vec2 a(1.0f);       // 1.0f, 1.0f
    cout << "a(x) = " << a.x << " a(y) = " << a.y;
    glm::vec2 b = a +1.0f;   // 2.0f, 2.0f
    cout << "\nb(x) = " << b.x << " b(y) = " << b.y;
    printf("\n----------------");
    // дополнил для себя  чтоб знать скока и чего весит
    float len = glm::length(a);
    cout <<"\nlen = "<< len;
    float len1 = glm::length(b);
    cout <<"\nlen1 = "<< len1;
    float dist = glm::distance(a,b);
    cout <<"\ndist = "<< dist;
    printf("\n----------------");
    glm::vec2 c(2.0f, -1.0f);
    cout << "\nc(x) = " << c.x << " c(y) = " << c.y;
    glm::vec2 d = a+2.0f*c;                     // сложение и умножение на число
    cout << "\nd(x) = " << d.x << " b(y) = " << d.y;
    glm::vec2 e = -d;
    cout << "\ne(x) = " << e.x << " e(y) = " << e.y;
    printf("\n----------------");
    glm::vec2 f = glm::normalize(e);
    cout << "\nf(x) = " << f.x << " f(y) = " << f.y;
    glm::vec2 a2(a.x);
    cout << "\na2(x) = " << a2.x << " b(y) = " << b.y << endl;
    printf("----------------\n");
    /*
     *  ВАЖНО этот код выдаёт ошибку: ‘glm::vec2 {aka struct glm::vec<2, float, (glm::qualifier)0>}’ has no member named ‘xy’ glm::vec2 a2(a.xy);
     */
    //    glm::vec2 a2(a.xy);
    //    glm::vec2 b2(a.xy);
    //    glm::vec2 b2(a.y());
    float dot2 = glm::dot(glm::vec2(1),d); // скаляроное произведение
    cout << "dot2 = " << dot2 << endl;
    float len_new = glm::length(e);         // длинна вектора
    cout << "len_new = " << len_new << endl;
    float dist1 = glm::distance(b, c);
    cout << "dist1 = " << dist1 << endl;   // растояне между векторами
    bool res = glm::all(glm::equal(a, b));
    cout << "res = " << res << endl;
    printf("----------------\n");
    glm::mat2 m(0,1,2,3);
    cout << "m[0] = " << m[0][0] <<" m[1] = " << m[0][1] << " m[2] = " << m[1][0] << " m[3] = " << m[1][1] << endl;
    glm::mat2 n = glm::matrixCompMult(m,m);     // покомпонентоное перемножение
    cout << "n[0] = " << n[0][0] <<" n[1] = " << n[0][1] << " n[2] = " << n[1][0] << " n[3] = " << n[1][1] << endl;
    glm::mat2 t = glm::transpose(m);            // транспонирование
    cout << "t[0] = " << t[0][0] <<" t[1] = " << t[0][1] << " t[2] = " << t[1][0] << " t[3] = " << t[1][1] << endl;
    glm::mat2 mi = glm::inverse(m);             // получаем обратную матрицу
    cout << "mi[0] = " << mi[0][0] <<" mi[1] = " << mi[0][1] << " mi[2] = " << mi[1][0] << " mi[3] = " << mi[1][1] << endl;
    printf("----------------\n");
    glm::vec2 u = mi*c+a;                       // умножение матрицы на вектор
    cout << "u(x) = " << u.x << " u(y) = " << u.y << endl;

    return 0;
}

а вот результат :

READ ALSO
Stable_sort, как отсортировать только часть

Stable_sort, как отсортировать только часть

Третий день уже мучаюсь, не могу сообразить, подскажите пожалуйста, как отсортировать вот к примеру такие данные в массиве типа string следующим...

113
Добавить/удалить класс [закрыт]

Добавить/удалить класс [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

165
Быстрый поиск по сайту

Быстрый поиск по сайту

Есть сайт, библиотека с около 1К книг (html файлов)Нужно было организовать поиск

138
Непонятные изображения (ракета, молния &hellip;) в HTML коде?

Непонятные изображения (ракета, молния …) в HTML коде?

В HTML коде увидел непонятные изображения откуда они берутся, как можно их использовать ?

93