Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links
Si x, y, z son las componentes del vector A se
define como modulo a |A| = sqrt(x*x + y*y + z*z).
//modulo de un vector
GLfloat Modulo(GLfloat x, GLfloat y, GLfloat z)
{
GLfloat len;
len = x*x + y*y + z*z;
return ( sqrt(len));
} |
Se llama haci al vector que tiene como modulo a 1.
//Vector de mudulo 1 o Normalizado
GLvoid Normaliza(GLfloat *x, GLfloat *y, GLfloat *z)
{
GLfloat len;
len = Modulo(*x, *y, *z);
len = 1.0/len;
(*x) *= len;
(*y) *= len;
(*z) *= len;
} |
Se llama producto escalar de dos vectores A, B al escalar obtenido como producto de los modulos de A y B por el coseno del angulo formado por los dos vectores.
A.B = |A|*|B|*cos(rho)
tambien se lo puede expresar mediante sus componentes
A.B = a1*b1 + a2*b2 + a3*b3
//Producto Escalar
GLfloat ProductoEscalar(GLfloat A[], GLfloat B[])
{
return (A[0]*B[0] + A[1]*B[1] + A[2]*B[2]);
} |
Se llama producto vectorial de dos vectores A y B al vector C que tiene
Lo podemos expresar tambien por sus coponentes A(a1,a2,a3) , B(b1,b2,b3), C(c1,c2,c3).
C=AxB
c1 = a2*b3 - a3*b2
c2 = a3*b1 - a1*b3
c3 = a1*b2 - a2*b1
//Producto Vectorial
GLvoid ProductoVectorial(GLfloat A[], GLfloat B[],
GLfloat *C1,
GLfloat *C2,
GLfloat *C3)
{
*C1 = A[1]*B[2] - A[2]*B[1];
*C2 = A[2]*B[0] - A[0]*B[2];
*C3 = A[0]*B[1] - A[1]*B[0];
} |
valcoey@hotmail.com
Ramiro Alcocer, 2001
Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links