Computergrafik
GLSLmath
← Flächen | ● | Weltkoordinaten →
Berechnungsbeispiel mit GLM bzw. GLSLmath:
Die sog. GLM ist eine C++ Bibliothek fĂźr 3D Vektoren, Matrizen-Multiplikation uvm.
Diese Bibliothek ist eine industrial-grade Implementierung, die in vielen 3D Projekten verwendet wird. Die Bibliothek ist recht umfangreich und sehr effizient, aber manchmal fßr Programmieranfänger umständlich zu benutzen, weshalb sie eher fßr C++ Profis geeignet ist.
GLSLmath ist eine einfacher zu benutzende Header-only C++ Variante von GLM. Wir verwenden GLSLmath daher fĂźr 3D Berechnungen wie z.B. die Folgende:
#include <glslmath.h>
int main()
{
vec3 o(0,0,1);
vec3 n(1,1,1);
vec3 nn = n.normalize();
vec3 p1(9,0,0);
vec3 p2(1,0,0);
double d1 = nn.dot(p1-o);
double d2 = nn.dot(p2-o);
std::cout << "distance of " << p1 << " to plane: " << d1 << std::endl;
std::cout << "distance of " << p2 << " to plane: " << d2 << std::endl;
return(0);
}
int main()
{
vec3 o(0,0,1);
vec3 n(1,1,1);
vec3 nn = n.normalize();
vec3 p1(9,0,0);
vec3 p2(1,0,0);
double d1 = nn.dot(p1-o);
double d2 = nn.dot(p2-o);
std::cout << "distance of " << p1 << " to plane: " << d1 << std::endl;
std::cout << "distance of " << p2 << " to plane: " << d2 << std::endl;
return(0);
}
Ăbersetzen:
g++ main.cpp -o test
Ausgabe:
distance of (9, 0, 0) to plane: 4.618802 distance of (1, 0, 0) to plane: 0
Live Demo
← Flächen | ● | Weltkoordinaten →