Wie dreht man einen Vektor von einem gegebenen Richtung

Ich bin momentan dabei, einige zufällige Vektoren/Anweisungen in einer Schleife als eine Kuppel-Form wie diese:

void generateDome(glm::vec3 direction)
{
    for(int i=0;i<1000;++i)
    {
        float xDir = randomByRange(-1.0f, 1.0f);
        float yDir = randomByRange(0.0f, 1.0f);
        float zDir = randomByRange(-1.0f, 1.0f);

        auto vec = glm::vec3(xDir, yDir, zDir);
        vec = glm::normalize(vec);

        ...
        //some transformation with direction-vector
     }
     ...
}

Dies schafft Vektoren als eine Kuppel-Form in +y Richtung (0,1,0):

Wie dreht man einen Vektor von einem gegebenen Richtung

Ich möchte jetzt drehen Sie den vec-Vektor von einer bestimmten Richtung-Vektor wie (1,0,0).
Dies sollte drehen Sie die "dome" zu der x-Richtung wie dieses:

Wie dreht man einen Vektor von einem gegebenen Richtung

Wie kann ich das erreichen? (vorzugsweise mit glm)

InformationsquelleAutor Bastl | 2014-01-04

Schreibe einen Kommentar